0

我只想允许 PDF 和 MS word 文件,大小必须小于 2MB,这是我的代码:

 $mimes = array(
              'application/pdf',
              'application/x-pdf',
              'application/acrobat',
              'application/msword',
              'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
             ); 

if(!in_array($_FILES['file']['type'], $mimes)) {
    $msg1='<div class="alert alert-error">Invalid file format, Please choose only PDF or MS word files</div>';
} elseif($_FILES['file']['size']>2097152){
    $msg2='<div class="alert alert-error">The file is too large,(must be < 2MB)</div>';
}

我的问题是: 当我选择大小 >2MB 的 pdf 文件时,会显示$msg1而不是$msg2

我想在文件不是 PDF 或 MS Word 文件时显示$msg1 ,当文件大于 2MB 时显示$msg2

有什么帮助吗????

4

2 回答 2

2

如果你有

 <form ...>
    <input id='upload' name='upload'>
 </form>

您必须测试 $_FILES['upload']['size'] > 2097152

于 2013-10-13T15:23:34.097 回答
0

这是因为.. 当您上传 pdf 文件时,您的第一个条件变得错误。当您尝试上传大于 2M 大小的文件时,$_FILES['file']['type'] 返回一个空值。原因在于您的 php.ini 文件。去寻找'upload_max_filesize'行。它可能会设置为 2M。因此,该类型返回一个空字符串。

于 2013-10-13T16:27:09.727 回答