【发布时间】:2016-06-25 22:57:08
【问题描述】:
我在 APIController 中有一个 PDF 文档的 POST 请求,代码如下:
Generator pdfGenerator = new Generator();
MemoryStream ms = pdfGenerator.Generate();
var response = new HttpResponseMessage
{
StatusCode = HttpStatusCode.OK,
Content = new StreamContent(ms)
};
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Tag.pdf"
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
当我使用 GET 请求将文件发送到 Angular 时,一切正常,我可以使用以下方法下载 pdf:
$window.open('my_url');
在下载文件夹中创建格式良好的 28K pdf 文件。
但是当我将请求更改为 POST 时,文件格式不正确。
var pdfGetter = $resource('my_url', {}, {
sendPDFTag: { method: 'POST', url: 'my_url', responseType: 'arraybuffer' }
});
pdfGetter.sendPDFTag(info, function(data) {
var file = new Blob([data], { type: 'application/pdf' });
var fileURL = URL.createObjectURL(file);
$window.open(fileURL);;
});
我尝试使用 FileSaver.js,但我的下载文件夹中有一个错误的 1K pdf 文件。
pdfGetter.sendPDFTag(info, function(data) {
var file = new Blob([data], { type: 'application/pdf' });
saveAs(file, 'Tag.pdf');
});
可能是什么问题?
谢谢
【问题讨论】:
标签: angularjs asp.net-mvc pdf download ngresource