Zip-файл из Flask send_fiile недействителен
Я новичок в коде JS и просто беру оставшуюся работу у коллеги.
Когда код Flask возвращает zip-файл с использованием send_file, загрузка на стороне JS кажется недействительной. Другой формат, например текст и csv, хорош.
Фрагмент кода сервера:
@bp.route('/download_file', methods=['POST'])
@login_required
def download_file():
download_path = request.form.get("download_path")
if os.path.exists(download_path):
@after_this_request
def send_response(response):
return response
return send_file(download_path, as_attachment=True)
Путь загрузки - это путь к файлу, расположенному на моем сервере
Цитата
Код JS приведен ниже, цель - нажать кнопку загрузки, и файл будет загружен.
$.post('/download_file', {'download_path' : download_path}).done(function(data) {
var blob =new Blob([data]);
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "my.zip";
link.click();
}).fail(function(data) {
alert("danger", "Can't find download file");
});
Zip-файл можно загрузить, но он поврежден. Мой опыт отладки ограниченного интерфейса показывает, что данные в Blob выглядят странно. Ценю любую помощь и предложения
1 ответ
Это может быть тип содержимого, отсутствующий в ответе:
response.headers['Content-Type'] = 'application/pdf'