Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PDF上载到PHP目录_Php_File Upload - Fatal编程技术网

将PDF上载到PHP目录

将PDF上载到PHP目录,php,file-upload,Php,File Upload,我正在将PDF上传到一个目录,我的脚本在一个目录下运行良好,但当我在一个页面上有多个目录可以上传PDF时,我很难找到一种有效编写脚本的方法。我知道有几种方法可以做到这一点,比如写另一个函数,如下面所示,但必须有更好的方法,这样我就不必为我想上传PDF的每个目录编写整个脚本。代码如下 if(is_post_request()) { $targetdirectory = "../../pathofdirectory/pdf/"; $targetdirectory = $targ

我正在将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>";

}
    
}
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']);太棒了!再次感谢,这比我拥有的要好得多!