验证上传的文件大小和 PHP 类型


validating uploaded file size and type in php

我只想允许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 文件时,将显示 $msg 1 而不是 $msg 2

当文件不是PDF或MS Word文件时,我想显示$msg 1,当文件为>2MB 时为 $msg 2

请帮忙吗????

如果你有

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

您必须测试 $_FILES["上传"]["大小"]> 2097152

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