Нужно определение картинки по расширению png, gif, bmp, jpg. Делается как то через switch case , не знаю куда подставлять, хелп! Код (Text): $size=GetImageSize ($_FILES["zak"]["tmp_name"]); $src=ImageCreateFromJPEG ($_FILES["zak"]["tmp_name"]); $iw=$size[0]; $ih=$size[1]; $koe=$iw/450; $new_h=ceil ($ih/$koe); $dst=ImageCreateTrueColor (450, $new_h); ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 450, $new_h, $iw, $ih); ImageJPEG ($dst, $name_new_file, 450); imagedestroy($src);
0. никогда не пытайся обрабатывать файл непосредственно из $_FILES["xxx"]["tmp_name"], 100% на хостинге это будет ошибка! сначала делай http://ru2.php.net/manual/ru/function.move-uploaded-file 1. расширение может не соответствовать реальному формату данных 2. если таки готов рискнуть с форматом, то Код (PHP): //... $ext = strtolower($ext); if ($ext == 'jpg') { $ext = 'jpeg'; } $func = 'imagecreatefrom'.$ext; if (!function_exists($func)) { die("Unknown image format {$ext}"); } $src = $func($filename);
Почему при загрузке jpg, gif, png меняются размеры на 10-20 Кб, а при загрузке bmp 3 МБ ?????? Код (Text): $zak=$_POST['zak']; $file=$_FILES['zak']['name']; $size=$_FILES['zak']['size']; $ext=array('.jpg','.gif','.png','.jpeg','.bmp'); $extension = substr($file,-(strlen($file) - strrpos($file,'.') - 1)); $name_new_file = "base/$cityname/$category/$foldername/img.".$extension; if(in_array(strrchr($file,"."),$ext)){ if($size>1024*1024*5){ //превышен максимальный размер файла }else{ if(move_uploaded_file($_FILES["zak"]["tmp_name"], $name_new_file)){ if (in_array($extension, $ext)) { $size=GetImageSize($name_new_file); switch ($extension) { case '.jpg': $src = @imagecreatefromjpeg($name_new_file); break; case '.gif': $src = @imagecreatefromgif($name_new_file); break; case '.png': $src = @imagecreatefrompng($name_new_file); break; case '.bmp': $src = @imagecreatefromwbmp($name_new_file); break; } $iw=$size[0]; $ih=$size[1]; $koe=$iw/450; $new_h=ceil ($ih/$koe); $dst=ImageCreateTrueColor (450, $new_h); ImageCopyResampled ($dst, $src, 0, 0, 0, 0, 450, $new_h, $iw, $ih); switch ($extension) { case '.jpg': imagejpeg($dst, $name_new_file, 450); // Для JPEG картинок break; case '.gif': imagegif($dst, $name_new_file, 450); // Для GIF картинки break; case '.png': imagepng($dst, $name_new_file, 450); // Для PNG картинок break; case '.bmp': imagewbmp($dst, $name_new_file, 450); // Для BMP картинки break; } imagedestroy($src); } }else{ }//if upload } }