Загрузка файла PHP и архивирование при загрузке - PullRequest
1 голос
/ 09 июня 2011

Кто-нибудь знает хороший способ загрузить файл (.mp3 или .wav или .txt или .whothing) и заархивировать этот файл перед перемещением в каталог?

Таким образом, пользователь загружает файл .mp3, перед тем как этот файл будет перемещен в определенный каталог, он будет заархивирован и затем перемещен.

Пожалуйста, сообщите.

Спасибо

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Посмотрите на расширение Zip:

http://www.php.net/manual/en/zip.examples.php

Я посмотрел код, на который вы ссылались (было бы хорошо, если бы вы включили его в вопрос), и внес несколько изменений:

$nameFile = $_FILES['file']['name'];
$tmpName = $_FILES['file']['tmp_name'];
$download_folder = './files/';

$zip = new ZipArchive();
$fileconpress = $download_folder.$nameFile.".zip";

$conpress = $zip->open($fileconpress, ZIPARCHIVE::CREATE);
if ($conpress === true)
{
    $zip->addFile($tmpName);
    $zip->close();
    echo $fileconpress."<br/>";
    echo "yess !! Success!!!! ";
}
else echo " Oh No! Error";

Важной частью и вероятной причиной вашей ошибки является $ download_folder. Вам нужно определить путь, куда вы хотите сохранить файл.

Я также удалил fread(), вы можете просто загрузить файл прямо в zip-объект с помощью addFile()

0 голосов
/ 09 июня 2011

Вы можете использовать способность PHP запускать команды оболочки и использовать их для создания стороннего программного обеспечения / вашей ОС для архивирования ваших файлов. см. - http://php.net/manual/en/function.shell-exec.php

Или есть расширения Zip для php см. - http://php.net/manual/en/book.zip.php

...