@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
  • Вопрос задан
  • 91 просмотр
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы