Неожиданный конец архива при архивировании файлов с помощью PCLZip или ZipArchive
В настоящее время интересно, если кто-нибудь испытывал испорченные почтовые файлы В настоящее время я использую следующий код
// Multiple File Downloads
require_once('includes/pclzip.lib.php');
$archive = new PclZip('archive.zip');
$v_list = $archive->create('robots.txt,index.php');
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
$file_url = 'archive.zip';
header('Content-Type: application/zip');
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
Чтобы создать zip-архив и принудительно загрузить zip-архив, в конечном итоге это будет инициировано нажатием кнопки, но сейчас я просто пытаюсь создать архив, который действительно работает.
Я получаю проблему независимо от того, использую ли я встроенный ZipArchive
класс или использовать PclZip
библиотека.
Одна очень странная вещь заключается в том, что созданный и размещенный на сервере почтовый индекс прекрасно работает, когда я загружаю его через FileZilla, но все ставки отключаются один раз, если я принудительно скачаю файл. Я пробовал в нескольких браузерах, и результаты одинаковы для каждого.
Действительно раздражает. Я признаю, что я впервые пытаюсь реализовать такую функциональность, поэтому, возможно, я что-то упустил. Я видел несколько тем на подобные проблемы, но, к сожалению, решения не работают для меня. Любая помощь, которая может быть оказана, будет принята с благодарностью.
1 ответ
Если он работает на сервере и поврежден только при загрузке - скорее всего, PHP что-то выводит (обратите внимание? Предупреждение?) Вместе с содержимым ZIP, поэтому он не работает при загрузке. Попробуйте открыть загруженный ZIP-файл с помощью текстового редактора и проверить вывод PHP в начале или в конце. На Linux это будет:
cat downloaded.zip | tail
cat downloaded.zip | head