3

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

我已经验证了对临时文件夹的写入权限并明确设置了它。我已经检查了 phpinfo() 以确保文件上传已启用,并且确实如此。

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

谢谢!

4

3 回答 3

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']['error'] 中找到。

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

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

UPLOAD_ERR_FORM_SIZE 值:2;上传的文件超出了 HTML 表单中指定的 MAX_FILE_SIZE 指令。

等等

于 2009-10-26T20:06:32.473 回答
12

您是否在表单中定义 enctype ?

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

不设置就不会上传文件。

于 2009-10-26T20:05:34.723 回答
3

表单是否具有正确的编码类型?

enctype="multipart/form-data"
于 2009-10-26T20:06:03.007 回答