上传大文件时出现getimagesize()警告问题

时间:2018-04-28 07:14:37

标签: php

我这里有一个小问题。这是在上传图像文件之前验证图像文件的一串代码的一部分。

//Check if the image is real or fake (fyi 1 is good 0 is not good)
if($uploadOK){
    $check = getimagesize($_FILES["banner_708"]["tmp_name"]);
    if($check !== false || !empty($check)) {
        $uploadOK = 1;
    } 
    else {
        $uploadOK = 0;
        array_push($banner_msg_array, "This is not a valid image.");
    }
}

问题是文件太大时。在上面的代码中最终发生的是getimagesize()评估为空。然后我在else语句中得到了我自己的array_push消息,但也出现了系统错误:

  

警告:getimagesize():

中的文件名不能为空

我认为上面的逻辑if($check !== false || !empty($check))会消除这个错误;如果它是假的或空的,那么转到else并推送阵列。它有点,但为什么系统错误?我怎么能摆脱这个?

我确实有整体代码检查文件大小,但无论我放置它的顺序,在上面的代码之前或之后,我仍然会在文件太大时收到此系统警告,我认为这是因为getimagesize()无需评估。问题是可以改变什么来消除这个?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

检查文件是否被正确接收。

if ($_FILES["banner_708"]["error"]){
    $uploadOK = 0;
    $banner_msg_array[] = "Image could not be uploaded";
} else {
    $check = getimagesize($_FILES["banner_708"]["tmp_name"]);
    if($check !== false || !empty($check)) {
        $uploadOK = 1;
    } 
    else {
        $uploadOK = 0;
        array_push($banner_msg_array, "This is not a valid image.");
    }
}