Здравейте!
Имам проблем с качване на картинка.
Имам следния код:
и функцията upload_small съдържа:
Проблема е, че в папката където трябва да са 450 пиксела големи картинки пак ги качва с размер 450 и когато избера по-малка картинка дава такава грешка и качва картинката само в папка thumbs
Благодаря предварително за помоща.
Имам проблем с качване на картинка.
Имам следния код:
Код:
$my_id = $_SESSION['logged_in_id'];
$random = rand(1000,9999);
$file_name = $random."_".time()."_".$_FILES['ufile']['name'];
$tmp_name=$_FILES['ufile']['tmp_name'];//път до временното положение на картинката
$file_type=$_FILES['ufile']['type'];
$path_small="upload/".$my_id."/thumbs/".basename(strtolower($file_name));
$path_small2="upload/".$my_id."/images/".basename(strtolower($file_name));
$path_small3="upload/".$my_id."/thumbs2/".basename(strtolower($file_name));
upload_small($tmp_name,$file_type,$path_small,150);
upload_small($tmp_name,$file_type,$path_small3,450);
move_uploaded_file($tmp_name,$path_small2);
Код:
function upload_small($tmp_name,$file_type,$path_small,$pixel_size){//upload с промяна на ширина и височина на картинката
if(!file_exists($path_small)){//проверка дали съществува файл със същото име
if($file_type=="image/pjpeg" || $file_type=="image/jpeg" || $file_type=="image/gif" || $file_type=="image/x-png" || $file_type=="image/png"){//проверка дали файлът е картинка
list($width,$height)=getimagesize($tmp_name);
define("WIDTH",$pixel_size);//ширина 150 пиксела - тук може да промените 150 за ширина
define("HEIGHT",$pixel_size);//височина 150 пиксела - тук може да промените 150 за дължина
if($width<WIDTH and $height<HEIGHT){//ако ширината и височината са по-малки от WIDTH и HEIGHT
move_uploaded_file($tmp_name,$path_small);
}elseif($width>=WIDTH){//ако ширината е по-голяма или равна на WIDTH
$new_width= WIDTH;//задаване на нова ширина
$new_height= (int) ($height*$new_width)/$width;//задаване на нова височина
//избиране на функцията за разчитане на картинката
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
$imagecreatefrom="imagecreatefromjpeg";
}elseif($file_type=="image/gif"){
$imagecreatefrom="imagecreatefromgif";
}elseif($file_type=="image/x-png" or $file_type=="image/png"){
$imagecreatefrom="imagecreatefrompng";
}
//край на избиране на функцията за разчитане на картинката
$image_p=imagecreatetruecolor($new_width, $new_height);//създаване на нова картинка с новите размери
$image=$imagecreatefrom($tmp_name);//разчитане на оригиналната картинка
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);//създаване на малката картинка
imagejpeg($image_p, $path_small, 100);//записване на малката картинка с качество 100
}elseif($height>=HEIGHT){//ако височината е по-голяма или равна на HEIGHT
$new_height= HEIGHT;//задаване на нова височина
$new_width= (int) ($width*$new_height)/$height;//задаване на нова ширина
//избиране на функцията за разчитане на картинката
if($file_type=="image/pjpeg" or $file_type=="image/jpeg"){
$imagecreatefrom="imagecreatefromjpeg";
}elseif($file_type=="image/gif"){
$imagecreatefrom="imagecreatefromgif";
}elseif($file_type=="image/x-png" or $file_type=="image/png"){
$imagecreatefrom="imagecreatefrompng";
}
//край на избиране на функцията за разчитане на картинката
$image_p=imagecreatetruecolor($new_width, $new_height);//създаване на нова картинка с новите размери
$image=$imagecreatefrom($tmp_name);//разчитане на оригиналната картинка
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);//създаване на малката картинка
imagejpeg($image_p, $path_small, 100);//записване на малката картинка с качество 100
}
}else{ echo 'Файлът не е картинка!'; exit; }
}else{ echo 'Такъв файл вече съществува!'; exit; }
}
Warning: getimagesize(D:\codes\xampp\tmp\phpFEF3.tmp) [function.getimagesize]: failed to open stream: No such file or directory in D:\codes\xampp\htdocs\wall\function.php on line 50
Благодаря предварително за помоща.