我正在使用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
答案 0 :(得分:0)
所有已排序的,似乎根目录中的php.ini文件未在其所在的子目录中使用。通过在文件本身中设置它们,如下所示它现在可以工作:
ini_set('memory_limit','1G');
ini_set('post_max_size','1G');
ini_set('upload_max_filesize','1G');