上载文件时,php中出现0错误

上载文件时,php中出现0错误,php,image,file-upload,Php,Image,File Upload,我正在用PHP上传一个图像。图像是.jpg类型,但当上传它时,它给了我错误0 这是我的密码 if(isset($_FILES["image_file"]["name"])){ $allowedExts = array("gif", "jpeg", "jpg", "png"); $extension = end(explode(".", $_FILES["image_file"]["name"])); if ((($_FILES["image_file"]["type"]

我正在用PHP上传一个图像。图像是.jpg类型,但当上传它时,它给了我错误0

这是我的密码

if(isset($_FILES["image_file"]["name"])){
    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $extension = end(explode(".", $_FILES["image_file"]["name"]));
    if ((($_FILES["image_file"]["type"] == "image/gif")
    || ($_FILES["image_file"]["type"] == "image/jpeg")
    || ($_FILES["image_file"]["type"] == "image/jpg")
    || ($_FILES["image_file"]["type"] == "image/pjpeg")
    || ($_FILES["image_file"]["type"] == "image/x-png")
    || ($_FILES["image_file"]["type"] == "image/png"))
    //&& ($_FILES["image_file"]["size"] < $size)
    && in_array($extension, $allowedExts))
      {
      if ($_FILES["image_file"]["error"] > 0)
        {
        echo "Return Code: " . $_FILES["image_file"]["error"] . "<br>";
        }
      else
        {
            $generate_random_number = rand(1,1000);
            $random_image_name = $generate_random_number.$_FILES["image_file"]["name"];
          if (file_exists($upload_dir_path.$random_image_name))
              {
                //echo $_FILES["file"]["name"] . " already exists. ";
              }
          else
          {
            move_uploaded_file($_FILES["image_file"]["tmp_name"],
            $upload_dir_path.$random_image_name);
          }
        }
      }
    else
      {print_r($_FILES);
        echo "Invalid file";
      }

}
if(isset($\u文件[“图像\u文件”][“名称”])){
$allowedExts=数组(“gif”、“jpeg”、“jpg”、“png”);
$extension=end(分解(“.”,$文件[“图像文件”][“名称]));
如果(($_文件[“图像文件”][“类型”]=“图像/gif”)
||($_文件[“图像文件”][“类型”]=“图像/jpeg”)
||($_文件[“图像文件”][“类型”]=“图像/jpg”)
||($_文件[“图像_文件”][“类型”]==“图像/pjpeg”)
||($_文件[“图像文件”][“类型”]=“图像/x-png”)
||($_文件[“图像文件”][“类型”]=“图像/png”))
//&&($_文件[“图像_文件”][“大小”]<$size)
&&in_数组($extension$allowedExts))
{
如果($_文件[“图像_文件”][“错误”]>0)
{
回显“返回代码:”.$\u文件[“图像\u文件”][“错误”]。“
”; } 其他的 { $generate_random_number=rand(11000); $random_image_name=$generate_random_number.$_FILES[“image_file”][“name”]; 如果(文件存在($upload\U dir\U path.$random\U image\U name)) { //echo$\u文件[“文件”][“名称”]。“已存在。”; } 其他的 { 移动上传的文件($文件[“图像文件”][“tmp文件名”], $upload\U dir\U path.$random\U image\U name); } } } 其他的 {print_r($_文件); 回显“无效文件”; } }
运行时,输出如下所示:

Array([image\u file]=>Array([name]=>Chambers\u block\u study.JPG[type]=>image/jpeg[tmp\u name]=>/tmp/phpghmfM2[error]=>0[size]=>2656165))

无效文件

请帮忙,谢谢

所以一切都会好起来的。如果您遇到问题,这不是由文件上载本身引起的

旁注:要检测JPG图像,最好使用而不是检查扩展名/MIME类型。这些是客户设置的,可以伪造

例如:

$info = getimagesize($_FILES["image_file"]["tmp_name"]);

if ($info == false) 
 {
 echo "Image is not a valid image file";
 // do whatever
 }

可能是因为它区分大小写:数组中有
jpg
,但文件以
jpg
试一试

直接从以下位置开始:

这意味着您的文件已正确上载

如果用户上载扩展名为.JPG的文件,If语句将失败。因此,我宁愿使用这样的方法来检查图像扩展:

$image_ext =  strtolower(pathinfo($_FILES["image_file"]["name"],PATHINFO_EXTENSION));
此外,它最好用于检查图像的有效性。您可以按如下方式使用它:

$isImageValid = @getimagesize($image_tmp);
if($isImageValid){
//do whatever
}

希望这有帮助

看起来不错,不是吗?错误0=无错误。您期望的是什么?如果你的文件上传时没有任何错误,这不是很酷吗?我认为Ravi希望在出现错误时输出,但看起来条件不正确,所以在一切正常时输出。@Rikesh文件没有上传。你怎么知道,会发生什么?tmp目录中显然有一个文件,它有一个大小。主要的问题不是检查类型。错误即将出现,因此文件无法上载。我收到了错误。错误区分大小写。我在jpg中使用了数组,而文件是jpg,所以错误来了。Thanks@Ravi好的,但正如所说的,这不是一个很好的方法来检查它是否是一个图像。
$image_ext =  strtolower(pathinfo($_FILES["image_file"]["name"],PATHINFO_EXTENSION));
$isImageValid = @getimagesize($image_tmp);
if($isImageValid){
//do whatever
}