@GaserV

Почему при скачивании PDF файлов больших размеров они становятся битые?

Такая проблема. Есть PDF размером 3kb и другой размером в 5.5mb. Первый открывается, второй - битый. Сам файл получаю с бэка:

api.get(`files/${id}`).then((r) => {
      const url = window.URL.createObjectURL(new Blob([r.data]));
      const link = document.createElement('a');

      link.href = url;
      link.setAttribute('download', name);
      document.body.appendChild(link);
      link.click();
      link.parentNode?.removeChild(link);
    });


Content-type в response headers такой:
content-type: text/html; charset=UTF-8
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Ты получаешь бинарник как текст в кодировке utf8, я правильно тебя понял?
Ничего не кажется тебе в этом деле странным?)

Полагаю файл бьётся на этапе преобразования - прочитать бинарник как utf8 - закодировать получившийся текст как из utf8 как бинарник.

Что у тебя скрывается под api? Axios? Сделай так:
api.get(`files/${id}`, {
  responseType: 'blob'
}).then((r) => {
  const url = URL.createObjectURL(r.data);
  // ...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Я бы сказал что на этой границе стоит какой то лимит. Либо запроса либо ответа.
Открывайте в бинарном редакторе и смотрите. Скорее всего либо мусор либо еще что то.

Для определения используйте что то типа KDiff3
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы