Как загружать, архивировать и переименовывать файлы с помощью php? - PullRequest
0 голосов
/ 26 мая 2011

Можно ли загрузить два разных файла и архив в формате zip с новым именем файла с помощью PHP?Ниже приведена форма, которую я создал.

 <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 из выбранных двух файлов и переименовать его в значение выбранной категории, а затем загрузить его.в / загрузить папку?

1 Ответ

0 голосов
/ 26 мая 2011

Это возможно и просто сделать в PHP. Однако есть 3 функции, которые вы спрашиваете здесь

  1. Загрузка нескольких файлов
  2. Zip файлы
  3. Переименование файлов

У каждого из них разные решения. Мой код может нуждаться в изменении в соответствии с вашими переменными, Ссылка на утилиту zip вы можете увидеть для деталей. Также вы можете получить количество сообщений в Stackoverflow для каждой из ваших задач, таких как, Zip-файлы

PHP ZIP-файлы на лету

Загрузка нескольких файлов

Загрузка двух файлов одновременно

Загрузить

<?

$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 ** Сначала загрузите класс утилиты 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);


    ?>
...