создать ZIP с изображениями, содержащимися в массиве на странице WordPress - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть файлы, которые уже находятся на моем сервере. Я создал массив, который имеет полный путь к файлам. Имена файлов разрешаются правильно.

$files = array($sm_image1ok, $sm_image2ok, $sm_image3ok, $sm_ambianceok, $sm_planok, $sm_mobilierok, $sm_rapportok);

У меня есть классический путь загрузки для WordPress:

$zipname = 'https://www.siteurl.com/wp-content/uploads/wpfile'.$post->ID.'.zip';

Я попытался создать ZIP-файл со следующим кодом

$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
   $zip->addFile($file);
}
echo "Number of files : " . $zip->numFiles . "\n";
echo "Status :" . $zip->status . "\n";
$zip->close();

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

А это моя ссылка для скачивания:

<a href="'.$zipname.'">Download files.</a>

Мой номер файлов и мой статус показывают "0". Когда я нажимаю на ссылку, она открывает страницу без результатов (неизвестная страница). Я надеялся на всплывающее модальное окно загрузки zip, а не на новую страницу. Zip-файл не создается на сервере. Я администратор сайта, поэтому у меня есть права на запись. Моя папка "для загрузки" имеет права доступа, установленные на 705. Может ли кто-нибудь указать мне правильное направление, пожалуйста?

...