首页 > 解决方案 > 如何在 C# 中使用 Web API 而不是 json 响应返回和打开文件

问题描述

我一直在关注下面链接的帖子中的答案,以便使用 dotnet api 返回文件以返回文件。

如何使用 Web API 返回文件?

然而,我可以大摇大摆地拨打电话,我得到的只是一个 json 对象,而不是当我直接导航到 URL 时打开文件的浏览器。(https://localhost:5001/api/SiteLink/gandrfiles /1 )。

任何想法为什么浏览器不会打开文件?谢谢!

json返回:

{
  "version": {
    "major": 1,
    "minor": 1,
    "build": -1,
    "revision": -1,
    "majorRevision": -1,
    "minorRevision": -1
  },
  "content": {
    "headers": [
      {
        "Key": "Content-Disposition",
        "Value": [
          "attachment; filename=Contact_Us_Page.pdf"
        ]
      },
      {
        "Key": "Content-Type",
        "Value": [
          "application/octet-stream"
        ]
      }
    ]
  },
  "statusCode": 200,
  "reasonPhrase": "OK",
  "headers": [],
  "trailingHeaders": [],
  "requestMessage": null,
  "isSuccessStatusCode": true
}

我最终遵循了 Amir Shirazi 提供的原始帖子的答案,并且它有效。我不知道为什么 Regfor 的答案没有起到作用,但它在项目中不起作用。

标签: c#apifiledownload

解决方案


您可能需要查看从 API 返回的 Content-Type。试试“application/octet-steam”

    result.Content.Headers.ContentType = 
        new MediaTypeHeaderValue("application/octet-stream");

推荐阅读