$ _FILES和表单数据

时间:2019-01-24 08:47:54

标签: php

尝试读取用户是否上传了文件。

HTML:

<input type="file" name="img" id="img">

PHP:

if(isset($_FILES['img'])) {
    $upload = 1;
    echo "upload 1";
}
else{
    $upload = 0;
    echo "upload 0";
}

我想查看用户是否选择了要上传的文件。在我的代码中,程序每次都达到$ upload = 1;即使没有文件。

3 个答案:

答案 0 :(得分:1)

您可以使用PHP的file_existsis_uploaded_file函数来检查文件是否已上传。

Create table INSTRUCTOR
CREATE TABLE INSTRUCTOR
  (ins_id INTEGER PRIMARY KEY NOT NULL, 
   lastname VARCHAR(15) NOT NULL, 
   firstname VARCHAR(15) NOT NULL, 
   city VARCHAR(15), 
   country CHAR(2)
   );

答案 1 :(得分:0)

不要只检查isset($_FILES['img']),请检查$_FILES['img']['error']的值是什么。如果为0,则没有错误,并且文件应该在那里-但这也应使用is_uploaded_file($_FILES['img']['tmp_name'])进行验证。 您可以检查list of potential upload errors

More details about file upload handling

答案 2 :(得分:0)

按照docs

if (isset($_FILES['img']) && $_FILES['img']['error'] === UPLOAD_ERR_OK) {
    $upload = true;
    echo "upload true";
} else {
    $upload = false;
    echo "upload false";
}

我的示例还使用了实际的booleans。实际上,您也可以这样做:

$upload = isset($_FILES['img']) && $_FILES['img']['error'] === UPLOAD_ERR_OK;