gpt4 book ai didi

c# - 从 HttpResponseMessage 获取 Excel 文件

转载 作者:行者123 更新时间:2023-12-04 19:48:11 24 4
gpt4 key购买 nike

我正在处理一个 ASP.NET Core 2.2 项目,我需要使用浏览器下载我的 Excel,但是当我执行我的请求时,我只会得到一些 Json。

我的Excel在流中,而且流不是空的!

这是我的代码:

HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
var streamContent = new StreamContent(stream);

streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
streamContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
streamContent.Headers.ContentDisposition.FileName = "Excel.xlsx";

message.Content = streamContent;

return message;

这是我得到的回复:

{"version":{"major":1,"minor":1,"build":-1,"revision":-1,"majorRevision":-1,"minorRevision":-1},"content":{"headers":[{"key":"Content-Type","value":["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]},{"key":"Content-Disposition","value":["attachment; filename=Excel.xlsx"]}]},"statusCode":200,"reasonPhrase":"OK","headers":[],"requestMessage":null,"isSuccessStatusCode":true}

那么,有人知道如何使用 HttpResponseMessage 发送我的 Excel 文件吗?

我可以使用 Filesteam 下载我的 excel 文件,但我不想使用这种方式,因为我无法收到任何 Http 错误消息(错误请求、内部等)但如果有人知道我如何发送这样的消息并返回一个文件流,我将很高兴阅读你的建议!

编辑:这是我返回 FileStreamResult 时的代码

                return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

最佳答案

您可以从流中读取字节数组,并返回 FileContentResult。

using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace DemoWebCore.Controllers
{
[Route("api/[controller]")]
public class FilesController : Controller
{
// GET api/files/sample.png
[HttpGet("{fileName}")]
public async Task<ActionResult> Get(string fileName)
{
var cd = new System.Net.Http.Headers.ContentDispositionHeaderValue("inline")
{
FileName = "Excel.xlsx"
};
Response.Headers.Add("Content-Disposition", cd.ToString());
StreamContent stream = YOUR_STREAM_SOURCE
byte[] content = await stream.ReadAsByteArrayAsync();
return File(content, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
}
}

关于c# - 从 HttpResponseMessage 获取 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com