我有一个上传表单,上传了一个文件。我遇到的问题是,即使没有上传文件,if(isset($ _ FILES))或者if(!empty($ _ FILES))仍然成功通过:
$_FILES = $HTTP_POST_FILES;
if($_POST['type'] == 'photo' && isset($_FILES)){
// returns true even if no file is uploaded. What am I missing!
}
答案 0 :(得分:11)
作为超全球,$_FILES
可能始终设置,无论是否存在上传的文件。
检查您期望的文件上传并查看大小字段。 (显然根据手册中的用户贡献说明,如果表单包含upload元素,即使没有选择文件,偶数isset($_FILES["my_file_name"])
也可能返回true。
这应该可靠地运作:
if($_POST['type'] == 'photo' &&
((isset($_FILES["my_file_name"]["size"]) &&
($_FILES["my_file_name"]["size"] > 0)) ){
(isset()用于防止“未定义的索引”通知。)
顺便说一下,你做了什么?:
$_FILES = $HTTP_POST_FILES;