У меня есть форма, где пользователь вставляет некоторые данные, а также загружает изображение.php изменить размер изображения при загрузке
Чтобы справиться с изображением, я получил следующий код:
define ("MAX_SIZE","10000");
$errors=0;
$image =$_FILES["fileField"]["name"];
$uploadedfile = $_FILES['fileField']['tmp_name'];
if($image){
$filename = stripslashes($_FILES['fileField']['name']);
$extension = strtolower(getExtension($filename));
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")){
echo ' Unknown Image extension ';
$errors=1;
} else{
$newname = "$product_cn."."$extension";
$size=filesize($_FILES['fileField']['tmp_name']);
if ($size > MAX_SIZE*1024){
echo "You have exceeded the size limit";
$errors=1;
}
if($extension=="jpg" || $extension=="jpeg"){
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefromjpeg($uploadedfile);
}else if($extension=="png"){
$uploadedfile = $_FILES['file']['tmp_name'];
$src = imagecreatefrompng($uploadedfile);
}else{
$src = imagecreatefromgif($uploadedfile);
}
list($width,$height)=getimagesize($uploadedfile);
$newwidth=60;
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
$newwidth1=25;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight, $width,$height);
imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1, $width,$height);
$filename = "../products_images/".$newname;
$filename1 = "../products_images/thumbs/".$newname;
imagejpeg($tmp,$filename,100); //file name also indicates the folder where to save it to
imagejpeg($tmp1,$filename1,100);
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}
}
функция getExtension:
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
Я написал некоторые обозначения в коде, так как им не очень знакомы с этими функциями ,
по некоторым причинам, не работает.
Когда я иду в папку «product_images» ИЛИ «product_images/thumbs», я не могу найти загруженное изображение.
Любая идея, что не так с моим кодом? должно быть изображение ширины 60 пикселей и изображение ширины 25 пикселей.
Примечание:
переменные, которые вы не знаете, где они были объявлены такие как $product_cn
были объявлены до этого блока кода, который работает втирают отлично (тестировал). Если вы все еще хотите взглянуть на него, не стесняйтесь просить код.
Заранее благодарен!
Это работает, но я запутался - почему вы извлечь размеры изображения в два раза? –
Это фантастика. Хотя в конце отсутствует очень важная строка: 'move_uploaded_file ($ _ FILES ['myFile'] ['tmp_name'], $ destinationFilePath);' – HerrimanCoder
@ jan-mirus. Было указано, что ширина и ширина варов изменяются в средний. Это было некрасиво, и читать было легче. – zeusstl