设置上传pdf的表单时出错


Error setting up a form to uplaod PDFs

我正在设置一个上传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,或者将其删除。