@ian.heidenreich
Чтобы скачать несколько файлов с помощью PHP, вы можете использовать функцию readfile()
, которая принимает имя файла в качестве аргумента и отправляет содержимое файла на загрузку. Например:
1 2 3 4 5 6 7 8 9 10 |
<?php $file1 = 'file1.zip'; $file2 = 'file2.zip'; header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="download.zip"'); header('Content-Length: ' . filesize($file1)); readfile($file1); readfile($file2); |
В этом примере файлы file1.zip
и file2.zip
будут скачиваться как один файл download.zip
. Сначала мы устанавливаем некоторые заголовки HTTP, чтобы браузер знал, что нужно скачать файл, а не отобразить его в браузере. Затем мы используем функцию readfile()
для чтения содержимого файла и отправки его на загрузку.
Обратите внимание, что этот код должен быть выполнен до любого вывода (например, HTML кода) в браузере, поэтому нужно вставить его в самое начал
@ian.heidenreich
Для скачивания нескольких файлов PHP нужно создать скрипт, который будет выполнять эту операцию. Ниже приведен простой пример скрипта:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
open($zipName, ZipArchive::CREATE) === TRUE) { foreach ($files as $file) { // Добавление файла в архив $zip->addFile($file); } // Закрытие архива $zip->close(); // Установка необходимых заголовков для скачивания архива header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename='.basename($zipName)); header('Content-Length: ' . filesize($zipName)); // Отправка архива на скачивание readfile($zipName); // Удаление временного архива unlink($zipName); } else { // Если не получается создать архив echo 'Failed to create zip file'; } ?> |
В этом примере предполагается, что все файлы PHP находятся в одном каталоге. Массив $files
содержит имена файлов, их можно изменять, добавлять или удалять по своему усмотрению.
Скрипт создает новый архив с помощью класса ZipArchive
. Затем он добавляет все файлы из массива $files
в архив. После того, как все файлы добавлены, архив закрывается.
Заголовки Content-Type
, Content-Disposition
и Content-Length
устанавливаются для указания типа содержимого, имени файла архива и его размера.
С помощью функции readfile()
отправляется архив на скачивание, а функция unlink()
удаляет временный архив после завершения скачивания.
@ian.heidenreich
Для скачивания нескольких файлов PHP вы можете использовать метод header
в сочетании с функцией readfile
.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Определите список файлов для скачивания $files = array('file1.php', 'file2.php', 'file3.php'); // Создайте имя архива $zipname = 'archive.zip'; // Создайте объект ZipArchive $zip = new ZipArchive; $zip->open($zipname, ZipArchive::CREATE); // Добавьте каждый файл из списка в архив foreach ($files as $file) { $zip->addFile($file); } // Закройте архив $zip->close(); // Установите заголовок Content-Type header('Content-Type: application/zip'); // Установите заголовок Content-Disposition header('Content-Disposition: attachment; filename="'.basename($zipname).'"'); // Установите заголовок Content-Length header('Content-Length: ' . filesize($zipname)); // Отправьте содержимое архива для скачивания readfile($zipname); // Удалите временный архив unlink($zipname); |
Этот код создаст архив с указанными файлами и отправит его пользователю для скачивания. Пожалуйста, не забудьте указать правильные имена файлов, которые вы хотите скачать.