php - 将 PDF 上传到 PHP 目录
问题描述
我正在将 PDF 上传到一个目录,并且我的脚本适用于一个目录,但是当我有多个目录可以在页面上上传 PDF 时,我无法想出一种有效编写脚本的方法。我知道有几种方法可以做到这一点,例如编写如下所示的另一个函数,但必须有更好的方法,因此我不必为要上传 PDF 的每个目录写出整个脚本。代码如下。
if(is_post_request()) {
$targetdirectory = "../../pathofdirectory/pdf/";
$targetdirectory = $targetdirectory . basename( $_FILES['file']['name']) ;
$file_type=$_FILES['file']['type'];
if ($file_type=="application/pdf") {
if(move_uploaded_file($_FILES['file']['tmp_name'], $targetdirectory))
{
$message = "The file ". basename( $_FILES['file']['name']). " is uploaded";
}
else {
$message = "Problem uploading file";
}
}
else {
$message = "You may only upload PDFs.<br>";
}
}
当然还有简单的形式
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<input class="button common" type="submit" value="Submit" />
</form>
在此先感谢您的任何建议。
解决方案
如果您同意允许用户选择上传到哪个目录,您可以让他们选择。
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" size="50" />
<select name="folderOption">
<option value="1">First Folder</option>
<option value="2">Second Folder</option>
<option value="3">Third Folder</option>
</select>
<input class="button common" type="submit" value="Submit" />
</form>
显然,您需要在服务器端验证不良数据。
if (is_post_request()) {
$targetdirectory = "../../pathofdirectory/pdf/";
$targetdirectory = $targetdirectory . basename( $_FILES['file']['name']) ;
$file_type = $_FILES['file']['type'];
$folderOption = $_POST['folderOption'];
if ($folderOption == 1 || $folderOption == 2 || $folderOption == 3) {
switch ($folderOption) {
case 1:
$targetdirectory = "../../pathofdirectory/pdf/";
break;
case 2:
$targetdirectory = "../../pathofdirectory2/pdf/";
break;
case 3:
$targetdirectory = "../../pathofdirectory3/pdf/";
break;
default:
$targetdirectory = "../../pathofdirectory/pdf/";
}
if ($file_type == "application/pdf") {
if(move_uploaded_file($_FILES['file']['tmp_name'], $targetdirectory)) {
$message = "The file ". basename( $_FILES['file']['name']). " is uploaded";
} else {
$message = "Problem uploading file";
}
} else {
$message = "You may only upload PDFs.<br>";
}
} else {
$message = "Bad data received for directory choice.<br>";
}
}
推荐阅读
- unix - Unix:删除文件中的文本匹配模式
- macos - 用于 Mac 的 f3probe?
- google-cloud-platform - Google 部署管理器存储的运行时配置变量显示已损坏
- centos - Plesk 从服务计划中删除托管类型“网站托管”
- java - 什么是通用语言环境数据存储库 (CLDR) - JDK 9
- android - 如何在 Play Console 中获取发布管理器的活动日志?
- mysql - 如何使用单个 .csv 文件更新数据库(Django)中的多个表?
- node.js - Node.JS - 返回承诺给出“未定义”
- postgresql - Elasticsearch 如何加入出版物和关键字
- r - 是否可以在 DT 数据表中设置默认选择的复选框?