PHP验证_FILES

时间:2011-02-13 22:18:22

标签: php

我有一个表单,用户可以通过该表单上传图像。在我的家用机器上我是这样验证的:

if(isset($_FILES['image']['name']))

它工作正常,但在我的工作机器上失败了。我需要使用:

$_FILES['image']['name'] != ''

我尝试过空($ _ FILES ['image']),但这也不起作用。 我只是想知道为什么会这样呢?

2 个答案:

答案 0 :(得分:6)

即使设置了$_FILES['photo'],您也应该$_FILES['photo']['error']查看部分上传(UPLOAD_ERR_PARTIAL)或空上传(UPLOAD_ERR_NO_FILE)等异常,如{{1}中所述PHP手册的3}部分。

答案 1 :(得分:0)

['name']可能未设置或为空,因为POST表单是以multipart/form-data请求类型发送的。并且filename=属性允许为空。我不确定,但是浏览器可能很好地配置(你是否在工作中使用MSIE进行测试?)出于安全原因而禁止它。无论如何,这不是一个可靠的领域。

这并不能解释为什么$_FILES["image"]是空的。我也猜测那里有一个上传错误。但无论如何,您应该使用print_r($_FILES);进行测试 另请参阅有关配置设置的常见陷阱http://php.net/manual/en/features.file-upload.common-pitfalls.php的手册部分。