2015-07-13 135 views
2

我想让文件上传页面docx,zip,rar,pdf,ppt这些扩展只允许在这里上传我写了代码,但是它显示无效文件类型错误 帮助来解决它上传docx,zip,rar,pdf,ppt,在php中

$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)) 
+1

请告诉我们完整的错误 –

+1

尝试把所有你OR条件在一组括号内的,因此,只有一个结果从他们评估.. – MaggsWeb

+0

它显示无效的文件选择 –

回答

1

使用此

$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' 
} 
+0

乐意帮忙:) –

+0

谢谢,它工作正常 –

+0

@ImranIqbal享受Codding :) –

1

试试这个代码:

$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)) 
+0

其不能工作 –

0

用途:

.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')