验证上传的文件大小并在php中输入

时间:2013-10-13 15:05:59

标签: php validation pdf file-upload

我想只允许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 $ msg1 的pdf文件时,而不是 $ msg2

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

时, $ msg2

任何帮助plz ????

2 个答案:

答案 0 :(得分:2)

如果你有

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

您必须测试$ _FILES ['upload'] ['size']&gt; 2097152

答案 1 :(得分:0)

这是因为..上传pdf文件时,您的第一个条件会出错。当您尝试上传大小超过2M的文件时, $ _FILES [ '文件'] [ '型'] 返回null值。原因在于你的php.ini文件。去找'line_max_filesize'这一行。它可能会设置为2M.so因此,类型返回一个空字符串。