【发布时间】:2016-04-23 18:10:21
【问题描述】:
我之前的问题:How to return file from ASP.net 5 web api
我正在尝试返回一个文件作为来自 Web API POST 请求的响应。
我正在使用 dnx451 框架和 rc1-final 构建。控制器方法:
[HttpPost("")]
public ActionResult Post([FromBody]DocumentViewModel vm)
{
try
{
if (ModelState.IsValid)
{
var Document = _repository.GetDocumentByGuid(vm.DocumentGuid, User.Identity.Name);
var Params = Helper.ClientInputToRealValues(vm.Parameters, Document.DataFields);
var file = Helper.GeneratePdf(Helper.InsertValues(Params, Document.Content));
FileStream stream = new FileStream(file,FileMode.Open);
return File(stream, "application/pdf", "test.pdf");
}
}
catch (Exception ex)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return null;
}
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return null;
}
结果我得到了一个名为“response”的文件。保存为pdf后,我尝试打开它,它说它已损坏。希望您能够帮助我。我正在使用 Postman 作为测试客户端。
谢谢
【问题讨论】:
-
调试时,代码是否到达
return File()行?响应中收到的内容和标头是什么? -
您的
Helper.GeneratePdf()线路是否正常工作?file的值是多少?可以打开文件吗?您是否在将生成的文件发送回浏览器之前检查了它? -
是的,pdf已经生成,我可以从文件资源管理器打开生成的pdf文件,就可以了。
标签: c# asp.net-web-api asp.net-core