2011-08-25 144 views
2

在這裏我想上傳pdf,doc和docx文件。 PDF文件正在上傳,但doc和docx文件未上傳。我保留enctype="multipart/form-data"財產form標記。我的代碼有什麼問題。無法上傳文檔和docx文件

if ((($_FILES["uploadjob"]["type"] == "application/pdf") 
    || ($_FILES["uploadjob"]["type"] == "application/doc") 
    || ($_FILES["uploadjob"]["type"] == "application/docx"))) { 
    if ($_FILES["uploadjob"]["error"] > 0) { 
     echo "Return Code: ".$_FILES["uploadjob"]["error"]."<br />"; 
    } else { 
     move_uploaded_file($_FILES["uploadjob"]["tmp_name"], "jobuploads/".$_FILES["uploadjob"]["name"]); 
     // echo $_FILES["file"]["tmp_name"]; 
     $filename = $_FILES["uploadjob"]["name"]; 
    } 
} else { 
    echo "<br><br><br><center><font size='3' color='red'>Invalid file. Please upload only pdf, doc or docx files.</font><br><br> This page will be redirected after 5 seconds, Please wait................</center>"; 
    echo "<meta HTTP-EQUIV='REFRESH' content='5; url=jobopening.php'>"; 
    exit; 
} 
+1

你能打印'$ _FILES [「uploadjob」] [「type」]的值嗎'也許這些文件的MIME類型不是這一個。我記得例如doc是'application/msword'官方的一個。 – yvan

+0

我已經完成了你的建議。我只上傳了d​​oc文件。它給了「application/vnd.openxmlformats-officedocument.wordprocessingml.document」。 – Hearaman

+0

你有你的答案,類型是不正確的在你的條件:) – yvan

回答

3

檢查MIME類型上載的文件,你的代碼的其餘部分看起來是正確的。您可以使用$_FILES[]["type"]進行檢查。如果Mime類型不同,請將其添加到IF條件中,然後查看它是否有效。

如果仍不起作用,請檢查文件大小是否低於PHP.ini中設置的限制。您可以通過phpinfo()找到文件大小限制;