У меня есть файлы, которые уже находятся на моем сервере. Я создал массив, который имеет полный путь к файлам. Имена файлов разрешаются правильно.
$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. Может ли кто-нибудь указать мне правильное направление, пожалуйста?