Angular: получить ответ полезной нагрузки из API загрузки - PullRequest
0 голосов
/ 02 апреля 2019

С помощью этого кода я могу загрузить файл, но не могу получить ответ полезной нагрузки, который представляет собой представление base64 нового файла.

this.http.post(config.url, formData, {
    reportProgress: true,
    responseType: 'arraybuffer'
}).subscribre(res => {
    console.log(res);
});

Я пробовал разные responseType (blob, arraybuffer, text и json), но ни в коем случае я не получаю base64 в полезной нагрузке.

РЕДАКТИРОВАТЬ 1: В веб-консоли ответом является строка bse64

но subscribe возвращает:

  • ArrayBuffer: {bytelength: 3717}, если responseType равно arraybuffer
  • Blob: {size: 3717, type: 'application/octet-stream'}, если responseType равно blob
  • тело запроса, если responseType равно text
  • ошибка, если responseType равно json

1 Ответ

0 голосов
/ 02 апреля 2019

Мне просто нужно было преобразовать ArrayBuffer в строку base64

const base64= btoa(String.fromCharCode.apply(null, new Uint8Array(res)));
...