Неожиданный конец архива при архивировании файлов с помощью 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
Другие вопросы по тегам