如何使用 php 上传、归档和重命名文件?

Posted

技术标签:

【中文标题】如何使用 php 上传、归档和重命名文件?【英文标题】:how to upload, archive and rename files using php? 【发布时间】:2011-05-26 00:05:12 【问题描述】:

是否可以使用 php 上传两个不同的文件并使用新文件名以 zip 格式存档?以下是我创建的表单。

 <form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
        <h1>Submit here</h1>

    <p>

    <label for="cat">category</label>

    <select id="cat" name="cat" value="">Category</option>

    <option value="csr2050">Cns</option>

    <option value="npp2023">npp</option>

    </select>

    </p><p>

        <label for="fsheet">fsheet</label>
    <input name="fsheet" type="file" id="fsheet" />
    </p><p>

        <label for="report">Report</label>
    <input name="report" type="file" id="report" />
    </p><p>

    <input type="submit" name="Submit" id="Submit" value="upload" />
    </form>

我想要的是,如何编写upload.php,它可以创建一个选定两个文件的zip存档文件并将其重命名为选定的类别值,然后将其上传到/upload文件夹?

【问题讨论】:

看看页面的右上角,你看到那个“搜索”的东西了吗? 【参考方案1】:

在 PHP 中也可以轻松实现。但是,您在此处询问 3 个功能

    上传多个文件 压缩文件 重命名文件

每一个都是不同的解决方案,我的代码可能需要根据你的变量来改变, 您可以查看 zip 实用程序链接以了解详细信息。您还可以在 *** 中为每个任务(例如 Zip 文件)获取帖子数量

PHP ZIP files on the fly

上传多个文件

Upload two files at once

上传

<?

$file_name1 = $_FILES['fsheet']['name'];
$file_name1 = stripslashes($file_name1);
$file_name1 = str_replace("'","",$file_name1);
$copy = copy($_FILES['fsheet']['tmp_name'],$file_name1);

 // prompt if successfully copied
 if($copy)
 echo "$file_name1 | uploaded sucessfully!<br>";
 else
 echo "$file_name1 | could not be uploaded!<br>";
 


$file_name2 = $_FILES['report']['name'];
$file_name2 = stripslashes($file_name2);
$file_name2 = str_replace("'","",$file_name2);
$copy = copy($_FILES['report']['tmp_name'],$file_name2);

 // prompt if successfully copied
 if($copy)
 echo "$file_name2 | uploaded sucessfully!<br>";
 else
 echo "$file_name2 | could not be uploaded!<br>";
 

?>

** 邮编 ** 首先从下载 zip 实用程序类 http://www.phpclasses.org/browse/file/9524.html

<?php
    $directoryToZip="secret"; // 
            $outputDir = $_POST['rootfolder'];
            //$outputDir="$folder"; //Replace "/" with the name of the desired output directory.
            $zipName="backup.zip";

            include_once("zip/CreateZipFile.inc.php");
            $createZipFile=new CreateZipFile;
            /*
            // Code to Zip a single file
            $createZipFile->addDirectory($outputDir);
            $fileContents=file_get_contents($fileToZip);
            $createZipFile->addFile($fileContents, $outputDir.$fileToZip);
            */

            //Code toZip a directory and all its files/subdirectories
            $createZipFile->zipDirectory($directoryToZip,$outputDir);


            $fd=fopen($zipName, "wb");
            $out=fwrite($fd,$createZipFile->getZippedfile());
            fclose($fd);
            $msg = "Files backup successfully";
            //$createZipFile->forceDownload($zipName);
            $trgtName = date("F-Y-h-i-s"). ".zip";
            copy ($zipName,$outputDir."/".$trgtName);
            @unlink($zipName);


    ?>

【讨论】:

文件上传脚本说无法上传!上传文件夹有777权限,一开始我只想重命名上传。

以上是关于如何使用 php 上传、归档和重命名文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用环境变量复制和重命名文件?

如何使用 CopyWebpackPlugin 复制和重命名文件

使用 AspNet 从 Azure Blob 存储下载和重命名文件

如何使用 -exec 查找和重命名所有文件

PHP 使用按钮下载、删除和重命名文件

如何在 Linux 中批量移动复制追加和重命名文件