Здравствуйте! Есть код, который объединяет файлы в архив и отдает его на скачивание браузеру: Спойлер: код PHP: $error = ""; if(extension_loaded('zip')){ if(count($all_files) > 0){ // проверяем выбранные файлы $zip = new ZipArchive(); // подгружаем библиотеку zip $zip_name = "lettertoourself.zip"; // имя файла if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){ $error .= "* Sorry ZIP creation failed at this time"; } foreach($all_files as $file){ $zip->addFile($file); // добавляем файлы в zip архив } $zip->close(); if(file_exists($zip_name)) { // отдаём файл на скачивание header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="'.$zip_name.'"'); readfile($zip_name); // удаляем zip файл если он существует unlink($zip_name); } } else $error .= "* Please select file to zip "; } else $error .= "* You dont have ZIP extension"; echo $error; Если файл архива не удалять и скачивать каким-то методом, и затем открывать, он открывается, все файлы внутри видны. Но если пытаться открыть архив, который скачивается через браузер, то возникает ошибка "Сжатая zip-папка имеет неверный формат". Как это исправить, сделать так, чтобы файл, скачиваемый через браузер, открывался?
Доброе утро! Спасибо. Архив скачанный не открывается, не смогу посмотреть, что внутри. Как тогда проанализировать причину? Может неправильные http-заголовки или кодировки приложили свою руку в этом?
Так не архиватором посмотри, а бинарным просмоторщиком/редактором. Вдруг там какую-нибудь хрень типа предупреждения php обнаружишь. Исходим из того всегда, что это наша программа с ошибкой, а не расширение php