PHP: üzerlerine yapma, ben neden bu hataları alabilirim?

0 Cevap

Ben bu fonksiyonu yaptığında:

function makeThumbnail($type, $name, $size, $tmp_name, $thumbSize) {

//make sure this directory is writable!

$path_thumbs = "uploaded_files/";       

//the new width of the resized image, in pixels.

$img_thumb_width = $thumbSize; // 

$extlimit = "yes"; //Limit allowed extensions? (no for all extensions allowed)

//List of allowed extensions if extlimit = yes

$limitedext = array(".gif",".jpg",".png",".jpeg",".bmp");       

//the image -> variables
$file_type = $type;

$file_name = $name;

$file_size = $size; 

$file_tmp = $tmp_name;
//check if you have selected a file.
echo $file_tmp."<br>";
echo $file_name."<br>";
echo $file_type."<br>";
echo $file_size."<br>";

if(!is_uploaded_file($file_tmp)){

echo "Error: Please select a file to upload!. <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>";

exit(); //exit the script and don't process the rest of it!

}

//check the file's extension

$ext = strrchr($file_name,'.');

$ext = strtolower($ext);

//uh-oh! the file extension is not allowed!

if (($extlimit == "yes") && (!in_array($ext,$limitedext))) {

echo "Wrong file extension.  <br>--<a href=\"$_SERVER[PHP_SELF]\">back</a>";

exit();

}

//so, whats the file's extension?

$getExt = explode ('.', $file_name);

$file_ext = $getExt[count($getExt)-1];

//create a random file name

$rand_name = md5(time());

$rand_name= rand(0,999999999);

//the new width variable

$ThumbWidth = $img_thumb_width;



/////////////////////////////////

// CREATE THE THUMBNAIL //

////////////////////////////////



//keep image type

if($file_size){

if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){

$new_img = imagecreatefromjpeg($file_tmp);

}elseif($file_type == "image/x-png" || $file_type == "image/png"){

$new_img = imagecreatefrompng($file_tmp);

}elseif($file_type == "image/gif"){

$new_img = imagecreatefromgif($file_tmp);

}

//list the width and height and keep the height ratio.

list($width, $height) = getimagesize($file_tmp);

//calculate the image ratio

$imgratio=$width/$height;

if ($imgratio>1){

$newwidth = $ThumbWidth;

$newheight = $ThumbWidth/$imgratio;

}else{

$newheight = $ThumbWidth;

$newwidth = $ThumbWidth*$imgratio;

}

//function for resize image.

if (function_exists(imagecreatetruecolor)){

$resized_img = imagecreatetruecolor($newwidth,$newheight);

}else{

die("Error: Please make sure you have GD library ver 2+");

}

//the resizing is going on here!

imagecopyresampled($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

//finally, save the image

ImageJpeg ($resized_img,"$path_thumbs/$rand_name.$file_ext", 100);

ImageDestroy ($resized_img);

ImageDestroy ($new_img);





}



//ok copy the finished file to the thumbnail directory

// move_uploaded_file ($file_tmp, "$path_big/$rand_name.$file_ext");

/*

Don't want to copy it to a separate directory?

Want to just display the image to the user?

Follow the following steps:



2. Uncomment this code:

/* 

/* UNCOMMENT THIS IF YOU WANT */

echo "OK THUMB " . $thumbSize;

exit();

//*/



//and you should be set!



//success message, redirect to main page.       

$msg = urlencode("$title was uploaded! <a href=\"Resize.php\">Upload More?</a>");
}

Sonra çalışmayı durdurdu, ama bir fonksiyonu dışında iyi çalışır.

Gördüğünüz gibi ben onlar değere sahip olmadığını görmek istedim ve onlar doğru değerleri var çünkü ben "echo $ dosya ...." ekledi.

Ben sadece hata hata alıyorum: yüklemek için bir dosya seçiniz.

Bu fonksiyon, normal yükleme görüntü komut (tam boy) sonra çalışıyor.

I işlevini çağırdığınızda i do:

makeThumbnail($_FILES[$fieldname]['type'], $_FILES[$fieldname]['name'], $_FILES[$fieldname]['size'], $_FILES[$fieldname]['tmp_name'], 100);

Onun bir fonksiyonu, değişkenler sadece hiçbir fark gidecekseniz değil benim diğer dosyasına:

$file_type = $_FILES['file']['type'];

$file_name = $_FILES['file']['name'];

$file_size = $_FILES['file']['size'];

$file_tmp = $_FILES['file']['tmp_name'];

Ama bu yanlış bir şey bulamıyorum, çalışması gerekir, ama öyle değil ve ben bu hatayı alıyorum. I is_uploaded_file işlevini kaldırırsanız, ben başka hataları bir demet olsun.

0 Cevap