我们说我有这种形式:
<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;当我附上档案时。
我写错了什么?我应该如何修改它?
答案 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';
}
希望有所帮助 亚历