Я пытаюсь реализовать логику загрузки PDF из DB на угловой 5. Я столкнулся с проблемой в файле загрузки.Файл загружен, но выдает ошибку при открытии: «Не удалось загрузить».
Я просмотрел очень много блогов и вопросов / ответов, но не смог найти ошибку в своем коде.
In Database -> pdf file content saved as BLOB
Веб-сервис Rest -> В приведенном ниже коде pdfData - это данные из столбца типа BLOB, который здесь представлен байтом [] в java-коде
@GetMapping("downloadReport/{reportId}")
public StreamingResponseBody downloadDocument(byte[] pdfData) {
return outputStream -> {
//This way working for sample
/*try (InputStream inputStream = new ByteArrayInputStream(
Files.readAllBytes(Paths.get("D:/pdfWithoutPassword.pdf")))) {
IOUtils.copy(inputStream, outputStream);
}*/
//This way not working when data fetched from Database
try (InputStream inputStream = new ByteArrayInputStream(pdfData)) {
IOUtils.copy(inputStream, outputStream);
}
outputStream.close();
};
Угловой код 5
downloadReport(reportType: string, reportId: string) {
let fileDownloadUrl = environment.apiUrl + "/downloadReport" + "/" + reportId;
return this.httpClient
.get(fileDownloadUrl, { observe: 'response', responseType: "blob"})
.subscribe(response => this.saveFileToSystem(response.body)),
error => console.log("Error downloading the file."),
() => console.info("OK");
}
saveFileToSystem(input: any) {
const blob = new Blob([input], { type: 'application/octet-stream' });
saveAs(blob, "testingpdf1.pdf");
}
Lookingза помощь в решении этого.Заранее спасибо!