PHP中的$ _FILES数组为空

时间:2009-10-26 20:03:21

标签: php mod-rewrite uploading

我正在尝试通过PHP脚本上传文件,但我的$ _FILES数组始终为空?我的文件HTML输入元素的$ _POST数据条目具有文件名...我的本地系统上没有创建文件。

我已经验证了对临时文件夹的写访问权限并明确设置了它。我已经检查了phpinfo()以确保启用了文件上传,它们是。

有什么可以防止这种情况? mod_rewrite会导致什么吗?

谢谢!

3 个答案:

答案 0 :(得分:14)

如果你有正确的enctype(<form method="post" enctype="multipart/form-data">),然后检查$ _FILES中的errno变量,有各种可能的失败原因。典型的是超出MAX_FILE_SIZE。

http://php.net/manual/en/features.file-upload.errors.php

  

自PHP 4.2.0起,PHP返回一个   适当的错误代码以及   文件数组。错误代码可以是   在文件的错误段中找到   在文件期间创建的数组   通过PHP上传。换句话说,   可能会发现错误   $ _FILES [ 'userfile的'] [ '错误']。

     

UPLOAD_ERR_OK值:0;没有   错误,文件上传成功。

     

UPLOAD_ERR_INI_SIZE值:1;该   上传的文件超过了   upload_max_filesize指令   php.ini中。

     

UPLOAD_ERR_FORM_SIZE值:2;该   上传的文件超过了   那是MAX_FILE_SIZE指令   在HTML表单中指定。

     

答案 1 :(得分:12)

您是否在表单中定义了enctype?

<form method="post" enctype="multipart/form-data">

如果您未设置文件,则不会上传文件。

答案 2 :(得分:3)

表单是否具有正确的enctype?

enctype="multipart/form-data"