我正在设置一个上传pdf的表单,但很难找出问题的根源。
我有一个表单在一个页面上。
<form enctype="multipart/form-data" action="step3.php" method="post">
<label>Select Any PDF's For This Product <br /><span style="font-size:12px; margin-left: 4px;">(Must be pdf format. Max file size 60MB)</span></label><br /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="60000" />
<input name="uploadedpdf1" type="file" /><br />
<input name="uploadedpdf2" type="file" /><br />
<input name="uploadedpdf3" type="file" /><br />
<input name="uploadedpdf4" type="file" /><br />
<input name="uploadedpdf5" type="file" /><br /><br>
<input type="submit" name="submit" value="Next Step" />
</form>
然后在下一页上,我使用一个很长的PHP脚本来上传和验证文件。我的问题开始在脚本的开始,所以我会张贴一个非常简化的版本。
for ($i = 1; $i < 6; ++$i) {
$file = "uploadedpdf{$i}";
if($_FILES[$file]["name"]!="") {
$fileName = $_FILES[$file]["name"];
$fileTmpLoc = $_FILES[$file]["tmp_name"];
$fileType = $_FILES[$file]["type"];
$fileSize = $_FILES[$file]["size"];
$fileErrorMsg = $_FILES[$file]["error"];
}}
在这一点上,我只是获取有关上传文件的信息,看看它是否可以上传。
我没有得到$_FILES[$file]["tmp_name"]或$_FILES[$file]["type"]的值。
$_FILES[$file]["size"] = 0
$_FILES[$file]["error"] = 2
但是$_FILES[$file]["name"]可以正常工作。
为什么我的文件没有大小,我如何去调试这两个错误?
文件太大。根据错误编号(您可以在手册上看到列表):
你UPLOAD_ERR_FORM_SIZE
Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive
在HTML表单中指定。
<input type="hidden" name="MAX_FILE_SIZE" value="60000" />
注释后编辑:
的大小以字节为单位指定,因此60 MB = 61,440,000。此外,要注意让php INI设置允许这样的大小(指令*upload_max_filesize*),并且它不会超过您的时间限制。
在访问$_FILES
中的信息之前,您应该检查error
条目。在您的情况下,错误为2意味着上传文件的大小大于POST字段MAX_FILE_SIZE
的数值,通常使用隐藏的输入字段设置。检查此输入字段是否具有正确的value
,或者将其删除。