2015-07-13 125 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')