Как сохранить двоичную строку в файл с Javascript и Filesaver, когда содержимое неизвестно? - PullRequest
0 голосов
/ 08 мая 2019

Я создаю приложение React.один из компонентов извлекает данные для небольших файлов из конечной точки GraphQL в виде (как я понимаю,) двоичных строк, сокращенный пример которых приведен ниже:

%PDF-1.3
%âãÏÓ

1 0 obj
<<
/Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R
>>
endobj

...
MORE CONTENT HERE
...

<<
/Size 11
/Root 1 0 R
/Info 10 0 R
>>

startxref
2714
%%EOF

В приведенном выше примере это совершенно ясно иззаголовок, что файл, который кодирует двоичная строка, является PDF.Однако этот компонент не всегда будет извлекать файл PDF - это могут быть другие типы двоичных строк.

Я хочу, чтобы эта строка была преобразована в файл и загружалась для пользователя.

Я дошел до этого, используя file-saver хочу сделать что-то вроде следующего:

  const fileDownload = new Blob([data.getCompanyDocument.documentData]);
  saveAs(fileDownload);

Это не работает должным образом.new Blob, кажется, требует MIME-тип, как показано ниже:

  const fileDownload = new Blob([data.getCompanyDocument.documentData], {
    type: "application/pdf"
  });
  saveAs(fileDownload);

Это работает.

Возможно ли для Blob автоматически извлекать MIME-тип из заголовка строки?

Если я не в курсе - каков обычный метод получения двоичной строки, как указано выше, и создания файла для загрузки пользователем из нее через Javascript на стороне клиента?

...