uploading docx, zip, rar, pdf, ppt, in php



我试图使文件上传页面docx, zip, rar, pdf, ppt这些扩展只允许在这里上传,我写了关于它的代码,但它显示无效的文件类型错误帮助解决它

$allowed_types = array('zip','rar','docx','ppt');
$tmp = explode(".", $_FILES['file']['name']);
$ext = end($tmp);
$upload_dir ="uploads/assignments/";
if(isset($_FILES['file']) && $_FILES['file']['name'] !=""){
if( ($_FILES['file']['type']=="application/zip")
|| ($_FILES['file']['type']=="application/rar")
|| ($_FILES['file']['type']=="'application/docx'")
|| ($_FILES['file']['type']=="application/ppt")
&& ($_FILES['file']['size']<400000)
&& in_array($ext,$allowed_types))

使用

$allowed =  array('zip','rar','docx','ppt');//allowed types
$filename = $_FILES['file']['name'];//file name
$ext = pathinfo($filename, PATHINFO_EXTENSION);//extension checking
if(!in_array($ext,$allowed) )
{
    echo 'Not Valid';
}
else
{
    echo ' Valid'
}

试试下面的代码:

 $allowedExts = array('zip','rar','docx','ppt');
    $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
    $upload_dir ="uploads/assignments/";
    if(isset($_FILES['file']) && $_FILES['file']['name'] !=""){
    if ((($_FILES["file"]["type"] == "application/zip")
      || ($_FILES["file"]["type"] == "application/rar")
      || ($_FILES["file"]["type"] == "application/docx")
      || ($_FILES["file"]["type"] == "application/ppt"))
      && ($_FILES["file"]["size"] < 400000)
      && in_array ($extension, $allowedExts)) 

USE:

.xls
application/vnd.ms-excel
.xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.ppt
application/vnd.ms-powerpoint
.pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation
.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
.pdf 
application/pdf
For Zip and RAR
'zip'  =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed','application/force-download','application/octet-stream')

'rar'  =>  array('application/x-rar', 'application/rar','application/x-rar-compressed','application/force-download','application/octet-stream')