我的之前的问题:如何从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()
行?响应中收到的内容和标头是什么? - DavidHelper.GeneratePdf()
代码是否正确运行?file
的值是多少?文件能否被打开,并且在将其发送回浏览器之前,你是否检查了生成的文件? - Leonardo Herrera