我正在尝试通过 PHP 脚本上传文件,但我的 $_FILES 数组始终为空?我的文件 HTML 输入元素的 $_POST 数据条目具有文件名...只是在我的本地系统上没有创建文件。
我已经验证了对临时文件夹的写入权限并明确设置了它。我已经检查了 phpinfo() 以确保文件上传已启用,并且确实如此。
什么可以阻止这种情况?mod_rewrite 会导致什么吗?
谢谢!
我正在尝试通过 PHP 脚本上传文件,但我的 $_FILES 数组始终为空?我的文件 HTML 输入元素的 $_POST 数据条目具有文件名...只是在我的本地系统上没有创建文件。
我已经验证了对临时文件夹的写入权限并明确设置了它。我已经检查了 phpinfo() 以确保文件上传已启用,并且确实如此。
什么可以阻止这种情况?mod_rewrite 会导致什么吗?
谢谢!
当您拥有正确的 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 指令。
等等
您是否在表单中定义 enctype ?
<form method="post" enctype="multipart/form-data">
不设置就不会上传文件。
表单是否具有正确的编码类型?
enctype="multipart/form-data"