如何在php中上传pdf或doc或txt文件

Posted

技术标签:

【中文标题】如何在php中上传pdf或doc或txt文件【英文标题】:how to upload pdf or doc or txt files in php 【发布时间】:2021-08-03 12:29:09 【问题描述】:

在此代码中,我将图像上传到上传/文件夹,但我想上传 word 文档以及 pdf 和 txt 文件 如果我将 mime 更改为 application/msword,我会收到错误消息 你能帮我上传 msword 文件吗?

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) 
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) 
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
   else 
    echo "File is not an image.";
    $uploadOk = 0;
  


// Check if file already exists
if (file_exists($target_file)) 
  echo "Sorry, file already exists.";
  $uploadOk = 0;


// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) 
  echo "Sorry, your file is too large.";
  $uploadOk = 0;


// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) 
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;


// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) 
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
 else 
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) 
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
   else 
    echo "Sorry, there was an error uploading your file.";
  

?>

【问题讨论】:

您得到的确切错误信息是什么? 【参考方案1】:

您需要修改您的代码,使其不会检查图像大小并允许 DOC、DOCX 和 PDF 文件。

因此,您需要更改两个块:

(1) 更改以下块

 $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);


  if($check !== false) 
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
   else 
    echo "File is not an image.";
    $uploadOk = 0;
  

    $uploadOk = 1;

和(2)更改以下内容

if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) 
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;

if(
$imageFileType != "docx" &&
$imageFileType != "doc" && $imageFileType != "pdf" && $imageFileType != "txt" &&
$imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) 
  echo "Sorry, only TXT, PDF, DOC, DOCX , JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;

请告诉我们它是否能解决您的问题。

【讨论】:

以上是关于如何在php中上传pdf或doc或txt文件的主要内容,如果未能解决你的问题,请参考以下文章

在app android中上传pdf或txt并转换为base64

php 如何实现在线预览文件如:txt,doc,pdf等

如何把TXT格式的文件转化成HTML格式

如何使用 PySpark 在桌面本地文件夹的目录中执行文件(pdf、docs、txt、xls)的并行处理?

在php中仅上传doc和pdf文件

在 MaprDB 中存储文档(.pdf、.doc 和 .txt 文件)