使用php上传.docx文件

时间:2018-08-27 22:53:18

标签: php

如何使用php脚本上传.doc和.docx? 我的脚本在pdf和txt上运行良好,但对于doc和docx,它无法上传。  我需要仅上传pdf doc docx和txt的脚本。

下面是我的代码

session_start();

$targetfolder = "testupload/";

 $targetfolder = $targetfolder . basename( $_FILES['file']['name']) ;

 $ok=1;

$file_type=$_FILES['file']['type'];

if ($file_type=="application/pdf" || $file_type=="application/msword" || $file_type=="text/plain") {

 if(move_uploaded_file($_FILES['file']['tmp_name'], $targetfolder))

 {

 
  $_SESSION['message'] ="The file ". basename( $_FILES["file"]["name"]). " uploaded successfully.";
       header("location:lecsubmit?done") ;
    } 



 else {

   $_SESSION['message']= "Sorry, your file was not uploaded.";
    header("location:lecsubmit?error") ;

 }

}

else {

 
  $_SESSION['message']= "You may only upload PDFs, DOCXs, DOCs or TXT files..";
    header("location:lecsubmit?error") ;
}

1 个答案:

答案 0 :(得分:1)

您检查if哑剧类型的语句将不接受docx文件。

See here以获得MS Office文件的MIME类型列表。根据您的情况,您还需要允许application/vnd.openxmlformats-officedocument.wordprocessingml.document

我可以建议一个较小的重构:

$allowedMimes = [
    'application/pdf',
    'application/msword',
    'text/plain',
    'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
];

if (in_array($_FILES['file']['type'], $allowedMimes)) {
    // .. continue to upload
} else {
    // show supported file types message
}