У меня есть приложение Angular 6, и я хочу загрузить сгенерированный PDF из моего .NET Core API.
Кажется, что каждый из вызовов действителен, но я не уверен, как загрузить / открытьфайл.
Microsoft.AspNetCore.Mvc.Infrastructure.FileContentResultExecutor: Информация: Выполнение Microsoft.AspNetCore.Mvc.FileContentResult, отправка файла с именем загрузки 'test.pdf' ...
API Reporting
:
public IActionResult CreateReport()
{
XtraReport report = m_ReportingManager.GetReport();
MemoryStream ms = new MemoryStream();
report.ExportToPdf(ms);
HttpContext.Response.ContentType = "application/pdf";
FileContentResult result = new FileContentResult(ms.GetBuffer(), "application/pdf")
{
FileDownloadName = "test.pdf"
};
return result;
}
И в моем Angular-компоненте у меня 2 вызова службы (1 из SO и 1 сам)
public getReport1() {
this._reportViewerService.getReport()
.subscribe(blob => {
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "test.pdf";
link.click();
}, error => { console.log(error) });
}
public getReport2() {
this._reportViewerService.getReport().subscribe(
(result: any) => window.open("http://localhost:44302/Reporting/test.pdf", "_blank"),
(error: any) => this._loggerService.logError(error),
() => this.loading = false
);
}
А мой сервис выглядит так:
public getReport(definitionKey: string, reportParameters: ReportParameter[]): Observable<any> {
const parameters = {
key: definitionKey,
reportParameters: reportParameters
};
return this._http.post<any>(this.baseUrl + 'CreateReport', parameters);
}