我有一个使用WEB API制作的API,它使用类型作为HttpResponseMessage提供pdf文件。
此API是从Web应用程序调用的,该应用程序使用Angular Js。
我的问题是,调用此API时无法下载文件。它给了我损坏的文件。
这是我的WebAPI代码
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
byte[] fileBytes = System.IO.File.ReadAllBytes(outputFilePath);
response.Content = new ByteArrayContent(fileBytes);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
//response.Content.Headers.ContentDisposition.FileName = "Certificate#" + ideaModel.IdeaNumber + ".pdf";
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return new CertificateModel { file = response, fileName = "Certificate#" + ideaModel.IdeaNumber.ToString()+".pdf" };
在angular JS中,我正在调用URL,并尝试使用FileSaver.js
保存文件 $http.post(getUrl('api/Reward/DeliverGift'),
{
IdeaNumber: '4',
SubmittedBy: 'Self',
},{responseType: 'arraybuffer'}
).then(function (response) {
var certificateFile = new Blob([response.data.file], { type: 'application/pdf' });
saveAs(certificateFile, response.data.fileName );
}, function (errors) {
});
我的原始文件是195Kb,但是上面的代码给了我一个9字节的文件