我正在处理的网站具有上传图片的功能。上传后,会生成一个缩略图并保存到“上传”状态。夹。这一切都很有效,直到我尝试上传用iPhone拍摄的全景图。这些图像宽约11,000像素,我认为这是问题所在。
第一个问题:什么变量或参数限制了缩略图的创建?这个问题是否可以解决?
第二个问题:我已经把那个停止工作的部分放在了试验中。捕获但是php代码在缩略图创建部分之后不执行任何操作。当这部分代码不起作用时,如何让它做其他事情呢?
我认为问题出在imagecopyresampled的某个地方,但我不确定。我希望有人比我更有经验。
$ds = DIRECTORY_SEPARATOR;
$storeFolder = '../uploads/';
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;
$date = new DateTime();
$newFileName = $date->getTimestamp().$_FILES['file']['name'];
$targetFile = $targetPath. $newFileName;
move_uploaded_file($tempFile,$targetFile);
$thumbStoreFolder = '../thumbs/';
$thumbPath = dirname( __FILE__ ) . $ds. $thumbStoreFolder . $ds;
$thumbnail = $thumbPath.'thumb'.$newFileName;
list($width,$height) = getimagesize($targetFile);
if($width >= $height) {
$thumb_width = 300;
$ratio = $width / $thumb_width;
$thumb_height = $height / $ratio;
} else {
$thumb_height = 300;
$ratio = $height / $thumb_height;
$thumb_width = $width / $ratio;
}
$thumb_create = imagecreatetruecolor($thumb_width,$thumb_height);
$source = imagecreatefromjpeg($targetFile);
imagecopyresampled($thumb_create,$source,0,0,0,0,$thumb_width,$thumb_height,$width,$height);
imagejpeg($thumb_create,$thumbnail);
}