我正在使用ajax和php上传用户的图像,然后在完整大小的图像上传完成后,我制作一个压缩副本以用作要显示的缩略图。一切正常,除非我尝试上传大于 13-14MB 的文件。对于大于此大小的文件,原始完整大小的文件会进入服务器,但不会创建缩略图。
我的上传和压缩代码是:
function compress_image($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg'){$image = imagecreatefromjpeg($source_url);}
else if ($info['mime'] == 'image/gif'){$image = imagecreatefromgif($source_url);}
else if ($info['mime'] == 'image/png'){$image = imagecreatefrompng($source_url);}
imagejpeg($image, $destination_url, $quality);
return $destination_url;
}
if(isset($_POST['folder'])){
$filename = $_SERVER['HTTP_X_FILE_NAME'];
$final_img = $_SESSION['dir']."/".$_SESSION['folder']."/".$filename;
// UPLOAD FULL IMAGE
if (file_put_contents($final_img, file_get_contents('php://input'))){
// CREATE COMPRESSED THUMBNAIL
if(compress_image($final_img, $_SESSION['dir']."/".$_SESSION['folder']."/thumbs/".$filename, 50)){
// continue
}
else{
// error
}
}
else {
// no post
}
我最初认为这是由于帖子或内存限制,所以我尝试了几种配置,甚至在我的php.ini
文件中达到以下配置(并检查了使用的值phpinfo()
并更新了它们)但再次没有运气。
post_max_size = 1G
upload_max_filesize = 1G
memory_limit = 1G