Мне нужно создать процесс для создания изображений в разных размерах и переместить их в соответствующую папку. Нижеприведенный код работает для некоторых изображений, а не для некоторых. Некоторые изображения переименовываются в подпапку и некоторые из них не являются. Некоторые изображения создаются, а некоторые нет. Я выполнил модульное тестирование на одном изображении, и он работает. Но когда я запускаю это на сервере, я получаю выше проблему. Существует более 500 изображений, которые должны быть Я не могу понять, где я ошибся. Пожалуйста, помогите.Создать изображение и переименовать не работает в PHP
$arr=Array();
$arr["popup"]=Array("width"=>228,"height"=>304);
$arr["zoom"]=Array("width"=>1500,"height"=>2000);
$source = imagecreatefromjpeg($file_path);
list($width, $height) = getimagesize($file_path);
foreach($arr as $image_type=>$dimention){
echo "<br> $image_type : ";
$temp_folder_name=$image_type;
$temp_folder_path='../prod_images/'.$folder_name.'/'.$temp_folder_name;
//check if directory exists if not then create else traverse
if (!file_exists($temp_folder_path)):
mkdir($temp_folder_path);
else:
$files = glob($temp_folder_path.'/'.$filename);
if (!empty($files))){
echo "<br/>Images exists";
$curr_dt = date('Ymd_His');
$dt = '_'.$curr_dt;
$file_arr = explode(".",$filename);
$new_filename = $file_arr[0].$dt.'.'.$file_arr[1];
$oldname = '../prod_images/'.$folder_name.'/'.$temp_folder_name.'/'.$filename;
echo "<br>Old Name : ".$oldname;
$newname = '../prod_images/'.$folder_name.'/'.$temp_folder_name.'/'.$new_filename;
echo "<br>New Name : ".$newname;
rename($oldname,$newname);
}else{
echo "<br/>Images does not exist";
}
endif;
$curr_width=$dimention["width"];
$curr_height=$dimention["height"];
echo "<br> $image_type - $curr_width - $curr_height";
$temp_image = imagecreatetruecolor($curr_width, $curr_height);
//imagecopyresized($temp_image,$source, 0, 0, 0, 0, $curr_width, $curr_height, $width, $height);
imagecopyresampled($temp_image,$source, 0, 0, 0, 0,$curr_width, $curr_height, $width, $height);
imagejpeg($temp_image,$temp_folder_path."/".$filename);
imagedestroy($temp_image);
Попробуйте указать соответствующий минимальный код. –
Используйте абсолютный путь .. это поможет вам –