小编Joo*_*üüa的帖子

从ASP.NET 5 Web API返回文件

我之前的问题:如何从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;

}
Run Code Online (Sandbox Code Playgroud)

结果我得到一个名为"response"的文件.将其保存为pdf后,我尝试打开它,它说它已损坏.希望您能够帮助我.我使用Postman作为测试客户端.

谢谢

c# asp.net-web-api asp.net-core

10
推荐指数
2
解决办法
2万
查看次数

如何从ASP.net 5 web api返回文件

在asp.net 5中创建了wep api.我想回复Post请求的文件响应.但不是文件,响应看起来像`

{
  "version": {
    "major": 1,
    "minor": 1,
    "build": -1,
    "revision": -1,
    "majorRevision": -1,
    "minorRevision": -1
  },
  "content": {
    "headers": [
      {
        "key": "Content-Disposition",
        "value": [
          "attachment; filename=test.pdf"
        ]
      },
      {
        "key": "Content-Type",
        "value": [
          "application/pdf"
        ]
      }
    ]
  },
  "statusCode": 200,
  "reasonPhrase": "OK",
  "headers": [],
  "requestMessage": null,
  "isSuccessStatusCode": true
}`
Run Code Online (Sandbox Code Playgroud)

码:

    public HttpResponseMessage 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));                 

                var …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api postman asp.net-core

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net-core ×2

asp.net-web-api ×2

c# ×1

postman ×1