My Flask - это REST-сервер.
На моем маршруте фляги вот что у меня есть:
@app.route('/v1/download', methods=['POST'])
def download_tissue():
f = open('path_to_zip_file', 'rb') // or r for text file
return f.read()
(Ранее я использовал Flask send_file()
. Но я неуверен, что send_file делает то, что я не могу сделать, просто читая его, и я пытаюсь упростить случай, чтобы выяснить проблему.)
На клиенте у меня есть приложение Vue, делающее асинхронный запрос:
axios.post('download')
.then((res) => {
let data = res.data;
const blob = new Blob([data], { type: 'application/zip' })
let link = document.createElement('a')
link.href = window.URL.createObjectURL(blob)
link.download = 'test.zip'
link.click()
})
.catch(error => {
console.error(error);
});
Проблема в том, что я не могу разархивировать его на Mac. Невозможно расширить test.zip для загрузки. (Ошибка 1 - Операция не разрешена.) Также размер файла просто неправильный. Это почти 22 МБ вместо оригинального 12.
Если я открою обычный текстовый файл, он будет работать, но не zip-файл.