Как скачать Zip-файл в ajax-запросе с помощью архиватора nodejs expressjs

ExpressJS

app.post('/api/v1/imagelist_data/image-data/', function(req, res) {
console.log("I received a NEW POST request");


res.set('Content-Type', 'application/zip');
res.set('Content-Disposition', 'attachment; filename=myFile.zip');

var zip = Archiver('zip');

// Send the file to the page output.
zip.pipe(res);

// Create zip with some files. Two dynamic, one static. Put #2 in a sub folder.
zip.append('Some text to go in file 1.', {
        name: '1.txt'
    })
    .append('Some text to go in file 2. I go in a folder!', {
        name: '2.txt'
    });

zip.finalize();

});

Код на стороне клиента с jQuery

$('#Image_form').on('submit', function(e) {
//Getting the Collection Name from Form
var frm_data = $('#myForm').serializeArray();
var DBValue = frm_data[0].value;


var url = "http://localhost:3000/api/v1/imagelist_data/image-data/" + DBValue;
var formData = $('#Raw_form').serializeArray();

$.ajax({
    type: "POST",
    url: url,
    data: formData,
    success: function(data, status, headers, config) {
        // useReturnData(data);
        var file = new Blob([data], {
            type: 'application/zip'
        });
        window.location = URL.createObjectURL(file);

    }
   });
});

Ajax Запрос Запрос

Ajax Response Response

Я не могу загрузить Zip-файл, созданный моим Nodejs-сервером, используя ExpressJS.

На стороне клиента при событии нажатия кнопки я использую Ajax-запрос с данными формы и возвращаю данные ответа в виде файла загрузки. Как я могу скачать ZIP-файл с помощью Ajax на стороне клиента с таким подходом.

Или, если Ajax dunt инициирует загрузку файла, что я должен использовать на стороне клиента, чтобы загрузить файл. а также предложить, если мне нужны некоторые изменения на стороне сервера

0 ответов

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