警告:getimagesize():文件名不能为空php

时间:2014-01-13 00:49:57

标签: php

我问过这个问题并发现PHP配置限制了我上传到2MB,所以我把它修复为3MB。但是,我现在有另一个问题:我也在检查图像尺寸,如果图像看起来超过3MB则失败,抛出以下错误。那么我怎么能自己停止错误并检查大小而不是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";
  }
}

2 个答案:

答案 0 :(得分:0)

在某些时候看起来上传出错了。尝试在getimagesize()之前添加一些错误处理:

if (!file_exists($_FILES['image']['tmp_name'])) {
    echo "File upload failed. ";
    if (isset($_FILES['upfile']['error'])) {
         echo "Error code: ".$_FILES['upfile']['error'];
    }
    exit;
}

很难说它失败的原因,因为涉及很多参数。错误代码可能会给你一个提示。

否则也许可以在这里开始阅读:http://de2.php.net/manual/en/features.file-upload.php

答案 1 :(得分:0)

我也遇到了同样的错误,请转到php.ini并转到第800行&#34; upload_max_filesize&#34;。 选择你的最大上传文件大小,我将我的设置为4M,在我的实际网站代码中我不允许3mb后的任何内容。 由于某种原因,使它们都具有相同的大小不起作用,PHP.ini需要至少比您允许上传的大1mb。