我問過這個問題,發現PHP配置限制了我的上傳到2MB,所以我將它固定爲3MB。不過,我現在還有另外一個問題:我也在檢查圖片尺寸,如果圖片超過3MB,則拋出以下錯誤。那麼我怎樣才能停止錯誤,並通過自己而不是PHP配置來檢查大小?警告:getimagesize():文件名不能爲空php
警告:和getimagesize():文件名不能爲空
下面是代碼:
$size = $_FILES['image']['size'];
list($width, $height) = getimagesize($_FILES['image']['tmp_name']);
$minh = 400;
$minw = 600;
$one_MB = 1024*1024; //1MB
if($size > ($one_MB*3))// this is not checking the size at all, the last echo is what I get if I try to upload over 3mb.
{
echo"File exceeds 3MB";
}
elseif ($width < $minw) {
echo "Image width shouldn't be less than 600px";
}
elseif ($height < $minh){
echo "Image height shouldn't be less than 400px";
}
else{
if (move_uploaded_file($_FILES['image']['tmp_name'], $new_location)){
//do something
}
else{
echo "Image is too big, try uploading below 3MB";
}
}
我已經嘗試過與1.5MB相同的圖像,它的工作原理和當我嘗試3.5 MB時失敗,所以它失敗的原因是因爲圖像大小。我不明白的是爲什麼第一個'if'語句沒有檢查文件大小並讓執行繼續。我會嘗試你的建議。 – user3006683
您應該在調用get_image_size()之前檢查文件大小**。在執行任何錯誤處理之前,您的腳本失敗。 – MrTweek