PHP Zip 3 небольших текстовых файлов и принудительной загрузки - PullRequest
3 голосов
/ 05 июня 2009

Мой веб-сайт записывает 3 небольших текстовых файла на основе информации о пользователях, а затем представляет эти 3 файла в виде ссылок, которые они должны «щелкнуть правой кнопкой мыши» и сохранить на рабочем столе.

Я хотел бы сохранить это, но также каким-то образом предложить способ сжать эти 3 маленьких файла и принудительно загрузить. И я не хочу сохранять файл zip на сервере. Можно ли это сделать и как?

Спасибо!

1 Ответ

12 голосов
/ 05 июня 2009

Для принудительной загрузки сначала необходимо отправить заголовки файлов.

header('content-type: application/zip');
header('content-disposition: inline; filename=YOUR_ZIP_FILE_NAME_HERE.ZIP"');

Для архивирования вы захотите использовать одну PHP-библиотеку zip, а затем эхо / выводить сжатый контент.

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

Примерно так:

$zip = new ZipArchive();
//the string "file1" is the name we're assigning the file in the archive
$zip->addFile(file_get_contents($filepath1), 'file1'); //file 1 that you want compressed
$zip->addFile(file_get_contents($filepath2), 'file2'); //file 2 that you want compressed
$zip->addFile(file_get_contents($filepath3), 'file3'); //file 3 that you want compressed
echo $zip->file(); //this sends the compressed archive to the output buffer instead of writing it to a file.
...