2013-12-21 46 views
0
if(isset($_POST["upload"])) 
{ 
    if(($_FILES['file']['name']!='') && ($_FILES['file']['type']==" image/png")) 
    { 
     $filepath=rand(1111,9999).$_FILES['file']['name']; 
     move_uploaded_file($_FILES['file']['tmp_name'],'quotations/'.$filepath); 
    } 
} 

這是我的代碼,用於格式PNG的圖像上傳。現在,而不是PNG,我希望它只上載Word文件。如何編寫僅上載Word文件的條件?如何將條件只上傳文件的文件

+0

是否要在開始上傳之前或文件上傳到服務器之後阻止它們? – Jason

回答

0

您可以使用<input type="file" accept=".doc">

$filename = basename($_FILES['uploaded_file']['name']); 
$ext = substr($filename, strrpos($filename, '.') + 1); 
if ($ext == ".doc"){ 
    //Do your code for uploading here 

} 
+0

感謝編輯@jason – Bhoomi

0

如果你建立一個允許的文件類型的數組,像這樣:然後,您可以使用in_array針對陣列測試

$onlyAllow = array(); 
$onlyAllow[] = 'image/png'; 
$onlyAllow[] = 'application/msword' 
$onlyAllow[] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'; //Word .docx 

if(isset($_POST["upload"])) { 
    if(($_FILES['file']['name']!='') && ($_FILES['file']['type']in_array($onlyAllow)) { 
     $filepath=rand(1111,9999).$_FILES['file']['name']; 
     move_uploaded_file($_FILES['file']['tmp_name'],'quotations/'.$filepath); 
    } 
} 

當您需要添加新的允許文件時,只需將其添加到您的陣列。

0

而不是隻看擴展名,可以通過查看MIME類型來獲得更多限制。在這裏有很多帖子在Stackoverflow關於這個問題。例如herehere

特別是最後一個提供了一些關於Office新版本的有用信息。在這裏,文檔實際上是壓縮的zip文件,這意味着MIME類型被錯誤地識別爲ZIP。

相關問題