Я создаю веб-страницу, которая должна загрузить файл в формате CSV. REST API возвращает файл.
Я получаю сообщение об ошибке при доступе к API. Я думаю, это потому, что файл преобразуется в JSON. Как я могу получить это из задней части и справиться с этим?
сервис.тс
return this.http.get(URL);
Возможный дубликат Угловой 6 скачать CSV
Вы можете использовать файл-сохранитель
import * as FileSaver from 'file-saver';
this.http.post(url, resource, { responseType: 'blob' })
.subscribe((resp: any) => {
FileSaver.saveAs(resp, `filename.csv`)
});
как я могу получить имя файла из заголовков ответов?
Для преобразования потока октетов в любой требуемый тип данных.
У меня была аналогичная ситуация, когда я конвертировал OCTET-STREAM в pdf.
Небольшая разница, может быть полезна для других, я получил ответ json, а массив октетов-потока был полем в этом ответе json.
In this case, replace .pdf by .csv
octet_array — это массив значений октетов.
let arr = new Uint8Array(octet_array);
let downloadLink = document.createElement('a');
let b = new Blob([arr], { type: 'application/octet-stream' })
downloadLink.href = window.URL.createObjectURL(b);
downloadLink.setAttribute('download', "prescription.pdf");
document.body.appendChild(downloadLink);
downloadLink.click();
downloadLink.parentNode.removeChild(downloadLink);
Что вы сделали до сих пор?