检测Filename是否为空

时间:2017-05-24 14:37:18

标签: php

如果上传的图像为空,如何在PHP中检测?

4 个答案:

答案 0 :(得分:1)

使用/检查文件名值:

BAD PRACTICE 使用上传脚本提供的文件名。您有no idea what this value can be或脚本的任何用户尝试将此值设置为。

如果要检查上传表单给出的文件名是否为空,则只需使用if(empty($_FILES['file']['tmp_name'])){...即可返回布尔值(true / false)。 Read about empty()

语法不一致:

这里存在逻辑上的不一致:

if ($_FILES['file']['size'] == 0 && $_FILES['file']['error'] == 0) {

如果文件大小为零,这通常意味着文件为NULL或为空,或者不是您实际想要上传的文件。如果没有错误, $_FILES['file']['error']只会返回零

您可能需要的是错误编号4,具体表示没有上传文件:

if($_FILES['file']['error'] == 4){
    //no file was uploaded. 
}

See the manual reference

示例代码检查文件上传正常,检查文件名是否安全:

正如我上面所说,使用上传脚本给出的名称是 BAD PRACTICE ,如果您要使用此值,我会强烈建议您在其上使用preg_replace删除无效字符,然后然后测试是否为空:

if($_FILES['file']['error'] == 0 && $_FILES['file']['size'] > 0){
    ///file was uploaded ok, has a size above zero bytes. 

    $uploadedFileName = preg_replace("/[^0-9a-z._-]/i","",$_FILES['file']['name']);
    if (empty($uploadedFileName)){

        //sorry no file name was given....

    }
}

答案 1 :(得分:0)

您可以使用

轻松检查是否为空
$uploadedFile = $_FILES['file']['name'];
if ($uploadedFile==""){
  //do something
}

答案 2 :(得分:0)

首先检查文件名是否已设置,然后检查文件名的值是否为空。

请尝试以下代码:

if (isset($_FILES['file']['name'])) {
    if ($_FILES['file']['name'] != "") {
        $uploadedFile = $_FILES['file']['tmp_name'];
        $image = imagecreatefrompng($uploadedFile);
        ...
    }
}

答案 3 :(得分:0)

您可以尝试:

1

if (isset($_FILES['file']['name'])) {
    //do something
}
  1.   

    使用$ _FILES ['userfile'] ['error']

  2. 了解详情:http://php.net/manual/en/features.file-upload.errors.php

相关问题