Как скачать 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 инициирует загрузку файла, что я должен использовать на стороне клиента, чтобы загрузить файл. а также предложить, если мне нужны некоторые изменения на стороне сервера