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'
Другие вопросы по тегам