0

我有一个简单的 php 页面,您可以在其中添加联系人,并且可以选择给他们一张图片。如果没有上传图片,则联系人将获得服务器上已有的默认图片。

问题是我用来检查用户是否上传文件的布尔测试总是返回为真,即使用户没有上传文件

这是我的 html 表单中的代码

<tr>
    <td align="right">Contacts Photo</td>
    <td><label>
      <input type="file" name="fileField" id="fileField" />
    </label></td>
  </tr>

这是我用来查看文件是否已上传的 php

$haspicture = false;

if (empty($_FILES['fileField'])){
    $haspicture = false;
}

if (!empty($_FILES['fileField'])){
    $haspicture = true; 
}

如果有人能告诉我做错了什么,将不胜感激

4

1 回答 1

1

数组中的元素$_FILES始终是数组本身。这是因为表单元素始终与表单一起提交,即使它不包含任何内容。换句话说,它们永远不会“空”。试着var_dump($_FILES)看看你得到了什么。

你应该像这样检查:

if (isset($_FILES['fileField']['error']) && $_FILES['fileField']['error'] === UPLOAD_ERR_OK) 

请参阅http://www.php.net/manual/en/features.file-upload.errors.php

于 2013-04-17T02:10:03.893 回答