PHP显示基于用户的消息已附加文件或未附加文件

时间:2015-11-24 07:49:37

标签: php html

我们说我有这种形式:

<html>
<head></head>

<body>
<form action="add.php" method="post" enctype="multipart/form-data">
File 1: <input type="file" name="file1" />
File 2: <input type="file" name="file2" />
<input type="submit" name="submit" value="ADD">
</form>
</body>
</html>

点击提交按钮时:
(1)如果用户没有附加2个文件,则显示&#34; 2个文件为空&#34;消息。
(2)如果用户在文件1或文件2中附加文件,则显示&#34;有1个文件&#34;信息。

我试过这样:

if(isset($_POST['submit']) && ($_POST['submit'] == 'ADD'))
{
    if(!empty($_FILES['file1']) && !empty($_FILES['file2']))
    {
        echo '2 files empty';
    } 
    else
    {
        echo 'have 1 file';
    }
}

但我总是得到#2; 2个文件为空&#34;当我附上档案时。
我写错了什么?我应该如何修改它?

2 个答案:

答案 0 :(得分:2)

尝试以下内容:

if( !empty( $_FILES['file1']['name'] ) && !empty( $_FILES['file2']['name'] ) )

添加['name']部分,以便比较字符串。

答案 1 :(得分:0)

如果您是第一次到达该页面,只需拨打该网址即可array(0) { }作为var_dump($_FILES)的结果。 当您发布表单而不选择文件时,这将导致

array(2) {
  ["file1"]=>
  array(5) {
    ["name"]=>
    string(0) ""
    ["type"]=>
    string(0) ""
    ["tmp_name"]=>
    string(0) ""
    ["error"]=>
    int(4)
    ["size"]=>
    int(0)
  }
  ["file2"]=>
  array(5) {
    ["name"]=>
    string(0) ""
    ["type"]=>
    string(0) ""
    ["tmp_name"]=>
    string(0) ""
    ["error"]=>
    int(4)
    ["size"]=>
    int(0)
  }
}

检查empty($_FILES)现在会给你一个false,因为数组中有一些东西。 而不是这样,只需检查$ _FILES数组内容的名称 tmp_name ,如此

 if($_FILES['file1']['name']=='' && $_FILES['file2']['name']=='')
    {
        echo '2 files empty';
    } 
    else
    {
        echo 'have 1 file';
    }

希望有所帮助 亚历