将PDF上载到PHP目录
我正在将PDF上传到一个目录,我的脚本在一个目录下运行良好,但当我在一个页面上有多个目录可以上传PDF时,我很难找到一种有效编写脚本的方法。我知道有几种方法可以做到这一点,比如写另一个函数,如下面所示,但必须有更好的方法,这样我就不必为我想上传PDF的每个目录编写整个脚本。代码如下将PDF上载到PHP目录,php,file-upload,Php,File Upload,我正在将PDF上传到一个目录,我的脚本在一个目录下运行良好,但当我在一个页面上有多个目录可以上传PDF时,我很难找到一种有效编写脚本的方法。我知道有几种方法可以做到这一点,比如写另一个函数,如下面所示,但必须有更好的方法,这样我就不必为我想上传PDF的每个目录编写整个脚本。代码如下 if(is_post_request()) { $targetdirectory = "../../pathofdirectory/pdf/"; $targetdirectory = $targ
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>";
}
}
if(is\u post\u request()){
$targetdirectory=“../../pathofdirectory/pdf/”;
$targetdirectory=$targetdirectory.basename($_FILES['file']['name']);
$file\u type=$\u FILES['file']['type'];
如果($file_type==“application/pdf”){
如果(移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$targetdirectory))
{
$message=“文件”.basename($_FILES['file']['name'])”已上载;
}
否则{
$message=“上传文件时出现问题”;
}
}
否则{
$message=“您只能上传PDF文件。
”;
}
}
当然还有简单的形式
<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>";
}
}
if(is\u post\u request()){
$targetdirectory=“../../pathofdirectory/pdf/”;
$targetdirectory=$targetdirectory.basename($_FILES['file']['name']);
$file\u type=$\u FILES['file']['type'];
$folderOption=$_POST['folderOption'];
如果($folderOption==1 | |$folderOption==2 | |$folderOption==3){
交换机($folderOption){
案例1:
$targetdirectory=“../../pathofdirectory/pdf/”;
打破
案例2:
$targetdirectory=“../../pathofdirectory2/pdf/”;
打破
案例3:
$targetdirectory=“../../pathofdirectory3/pdf/”;
打破
违约:
$targetdirectory=“../../pathofdirectory/pdf/”;
}
如果($file_type==“application/pdf”){
如果(移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$targetdirectory)){
$message=“文件”.basename($_FILES['file']['name'])”已上载;
}否则{
$message=“上传文件时出现问题”;
}
}否则{
$message=“您只能上传PDF文件。
”;
}
}否则{
$message=“接收到用于目录选择的错误数据。
”;
}
}
使用备用目录的原因是什么?情况如何?你想让用户选择哪个目录吗?啊,是的,这可能正好满足我的需要,简单又漂亮。可以上传到目录的页面受密码保护,必须以管理员身份登录,这样就可以了。谢谢你的回答!没问题,很高兴我能帮忙。如果文件上有条件,你可以用代码来实现,但如果这是问题的关键,让用户选择也不错。这看起来很棒。我试图找出如何执行if($folderOption==1 | |$folderOption==2 | |$folderOption==3){switch($folderOption){(我在move_uploaded_file()中遇到一个错误:copy()函数的第二个参数不能是中的目录)当我找到它时,我会发布一个修复程序。啊,简单的错误…相信这只是目录的路径。不,那不是:)啊,我找到了它。所以我只需在开关中添加文件名($FolderOption),就像这样:$targetdirectory=“../../path/pdf/”。basename($\u FILES['file']['name']);太棒了!再次感谢,这比我拥有的要好得多!