Zipstream в Laravel 5.4 - данные повреждены

Я использую метод для создания примера файла zip.

К сожалению, вывод zip-файла не распаковывается до ожидаемого ввода.

public function generateZip(Request $req) { 
    $response = new StreamedResponse(function()
    {
        $opt = array(

            'comment' => 'test zip file.',
            'send_headers'=>true,
        );

        $zip = new ZipStream\ZipStream('example.zip');

        # create a file named 'hello.txt' 
        $zip->addFile('hello.txt', 'This is the contents of hello.txt');


        # finish the zip stream
        $zip->finish();
     });


    return $response;

Сгенерированный файл example.zipи после распаковки распакуйте файл "hello.txt", но его содержимое будет одной пустой новой строкой

…»,V¢íåTÖ‰¸ºí‘ºíbÖ¸4Öå‘úú|Ωíä

Мои усилия были основаны на этом коде:

Использование ZipStream в Symfony: потоковая загрузка zip не будет распаковываться с помощью Archive Utility на Mac OSX

Мои шаги отладки начались так:

1) Попытка сгенерировать zip-файл с помощью потока Amazon S3

2) ковыряться с настройками, убирая компрессию

3) Изоляция проблемы до простейшего результата

4) Добавление буферизации вывода и сброса вывода, чтобы попытаться перехватить любой вывод.

Мой маршрут такой:

Route::get("/generate-zip", 'myController@generateZip');

1 ответ

Решение

К сожалению, моя проблема не была связана с библиотекой. Я (я думаю) случайно сохранил файл внутри /vendor, в котором был какой-то дополнительный код. Очистка папки поставщика и переустановка сделали свое дело.

Другие вопросы по тегам