您好我正在尝试从我在服务器上创建的报告中下载pdf。当我创建它时,我将它保存在服务器上一会儿然后我再打一次电话并下载它。
以下是Web API上的代码:
var rootDirectory = HostingEnvironment.MapPath("~");
var filePath = $@"{rootDirectory}\Temp\{file}.pdf";
var bytes = File.ReadAllBytes(filePath);
File.Delete(filePath);
var memoryStream = new MemoryStream(bytes);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(memoryStream.ToArray())
};
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "report.pdf"
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return result;
然后我回到打字稿,这里是我使用的代码下载它:
this.reportsService
.download(id)
.subscribe(r => {
let pdf =r._body;
var pdfName = `${this.selectedReport.name}.pdf`;
let blob = new Blob([pdf], { type: 'application/pdf' });
window.open(URL.createObjectURL(blob));
});
});
我应该提一下,当我从服务器上保存pdf时打开它是正确的。 有人可以告诉我我错过了什么吗?