0
我上傳用戶的圖像與ajax和php,然後一旦全尺寸圖像上傳完成,我做一個壓縮副本作爲縮略圖使用顯示。所有工作正常,除非我嘗試上傳大於13-14MB的文件。對於大於此的文件,原始的全尺寸文件將進入服務器,但不會創建縮略圖。PHP - 上傳後無法保存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
錯誤這是安靜的危險,好像用戶試圖上傳一個巨大的圖像,你的服務器將不會很高興,壓縮可能會失敗。也許你應該定義一個較低的上傳文件大小。 – COil
嘿,對不起,我應該澄清 - 我只是使用這些大的值來表明它不工作 - 我現在在我的實際php文件中使用較低的值 –