Как прочитать данные большого двоичного объекта как файл в Angular?

#javascript #angular #typescript #blob #angular9

#javascript #angular #typescript #большой двоичный объект #angular9

Вопрос:

У меня есть API, который извлекает такие данные:

JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyhlbi1VUykgL1N0cnVjdFRyZWVSb290IDE4IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vTWV0YWRhdGEgMTAxIDAgUi9WaWV3ZXJQcmVmZXJlbmNlcyAxMDIgMCBSPj4NCmVuZG9iag0KMiAwIG9iag0KPDwvVHlwZS9QYWdlcy9Db3VudCAyL0tpZHNbIDMgMCBSIDE0IDAgUl0gPj4NCmVuZG9iag0KMyAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjEgNSAwIFIvRjIgOSAwIFIvRjMgMTEgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSL0dTO

Это не полные показанные данные (фактические довольно длинные)

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

В чем проблема, если я установлю responseType для API значение arraybuffer Мне нужно преобразовать данные ответа в большой двоичный объект, но для этого мне также нужен тип файла, которого у меня нет.

Есть ли какое-либо решение для просмотра данных непосредственно в виде файла?

Ответ №1:

Попробуйте file-saver:

npm install file-saver

и

 import { saveAs } from 'file-saver';
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");
 

Комментарии:

1. Я не знаю, каким будет тип файла полученных данных, это может быть что угодно

2. Вы должны получить это в ответ от API в разделе contentType .