我正在尝试通过PHP脚本上传文件,但我的$ _FILES数组始终为空?我的文件HTML输入元素的$ _POST数据条目具有文件名...我的本地系统上没有创建文件。
我已经验证了对临时文件夹的写访问权限并明确设置了它。我已经检查了phpinfo()以确保启用了文件上传,它们是。
有什么可以防止这种情况? mod_rewrite会导致什么吗?
谢谢!
答案 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"