Попытка загрузить почтовый файл в браузер клиента, который был передан с сервера в Express - PullRequest
0 голосов
/ 06 декабря 2018

Я использую инструмент под названием s3-zip , который объединяет файлы из S3 на стороне сервера и затем передает поток zip-файлов клиенту с помощью платформы Express.Я могу подтвердить, что код на стороне сервера работает правильно, и он показан ниже

router.get('/download', function (req, res, next) {

    const region = 'us-west-2';
    const bucket = 'my-bucket';
    const folder = 'my-folder/';
    const file1 = '85570334.jpg';
    const file2 = '85570335.jpg';
    const file3 = '85571603.jpg';

    s3Zip
        .archive({ region: region, bucket: bucket}, folder, [file1, file2, file3])
        .pipe(res)
});

Так выглядит ответ на хромированной консоли

enter image description here

Проблема возникает, когда я получаю ответ на стороне клиента и пытаюсь загрузить его в виде zip-файла в клиентский браузер.Я использую Angular File Saver для этого.В следующем фрагменте я пытаюсь взять ответ, соответствующий изображению выше, и загрузить его в браузер клиента.

var blob = new Blob([res._body], {type: "application/zip"});
FileSaver.saveAs(blob, "test-new.zip");

Однако файл zip загружается при попытке открыть его на компьютере Mac.Я получаю следующую ошибку

enter image description here

Может кто-нибудь увидеть, что вызывает эту ошибку и как ее исправить?

1 Ответ

0 голосов
/ 06 декабря 2018

Ах, похоже, это была проблема, связанная с самим запросом, который я не показывал в своем вопросе.Я добавил {responseType: ResponseContentType.Blob }, и после этого, похоже, все заработало

...