Я прочитал много похожих вопросов, перепробовал много предложенных решений, но ни один не помог мне. Итак, я отправляю файл из бэкэнда, используя "res.download ('directory /' + filename)", и, судя по заголовкам ответа, я получаю правильный файл. В папке, из которой я отправляю, нет других файлов, исходный файл размером 14 КБ. Тем не менее, часть данных «ответ» составляет около 21 КБ. Вот что я делаю с ответом в веб-приложении, чтобы получить файл:
await axios.get(`api` + file.id,
{headers: {'x-access-token': token}}, { responseType: 'arraybuffer' }
).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data])); //specifying the type here doesn't help
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', `${filename}`); //filename = the name of the file i'm trying to download
document.body.appendChild(link);
link.click();
link.parentNode.removeChild(link);
})
И полученный в результате файл также имеет размер около 21 КБ и не открывается словом из-за его повреждения.