Как скачать несколько файлов php?

Пользователь

от ian.heidenreich , в категории: PHP , 2 года назад

Как скачать несколько файлов php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от ciara , 2 года назад

@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 кода) в браузере, поэтому нужно вставить его в самое начал

Пользователь

от jerad.kuphal , год назад

@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() удаляет временный архив после завершения скачивания.

Пользователь

от alisa.bahringer , год назад

@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);


Этот код создаст архив с указанными файлами и отправит его пользователю для скачивания. Пожалуйста, не забудьте указать правильные имена файлов, которые вы хотите скачать.