Загрузите несколько файлов как zip-файл с помощью php

От preg_replace документация на php.net:

замена может содержать ссылки формы \n или (начиная с PHP 4.0.4) $n с последней формой, являющейся предпочтительной. Каждая такая ссылка будет заменена текстом, полученным заключенным в скобки шаблоном n'th.

Посмотрите пример Flubba.

101
задан Zoe 2 April 2017 в 15:32
поделиться

2 ответа

Вы можете использовать класс ZipArchive , чтобы создать ZIP-файл и передать его клиенту. Что-то вроде:

$files = array('readme.txt', 'test.html', 'image.gif');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
  $zip->addFile($file);
}
$zip->close();

и для его потоковой передачи:

header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

Вторая строка заставляет браузер отображать окно загрузки пользователю и запрашивает имя filename.zip. Третья строка является необязательной, но в некоторых (в основном старых) браузерах в некоторых случаях возникают проблемы без указания размера содержимого.

202
ответ дан 24 November 2019 в 04:38
поделиться

Создайте zip-файл, затем загрузите файл, установив заголовок, прочтите содержимое zip-архива и выведите файл.

http://www.php.net/manual/en /function.ziparchive-addfile.php

http://php.net/manual/en/function.header.php

1
ответ дан 24 November 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: