gpt4 book ai didi

c# - 如何在 Web API 的响应中附加文件

转载 作者:行者123 更新时间:2023-12-02 16:51:13 24 4
gpt4 key购买 nike

我需要在 ASP.NET Core 的 webAPI 中生成一个 Excel 文件,其中包含从 aurelia 网络应用程序接收的数据。流程是这样的:在前端我提出请求

Print(printData: PrintData) {
return this.http
.fetch(`planning/Print`, {
method: "post",
body: json(printData)
})
.then(response => response.json())
.catch(error => {
console.log(error);
});

在 Web API Controller 中,我使用 ClosedXML 库获取数据并生成 Excel 文件

[HttpPost]
[Route("Print")]
public async Task<IActionResult> Print([FromBody] PrintDataVM data)
{

var getResponse = await mediator.Send(new PrintPlanning(data));

return Ok(getResponse);

public async Task<XLWorkbook> PrintPlanning(PrintDataVM data)
{
using (XLWorkbook workBook=new XLWorkbook())
{
var workSheet= workBook.Worksheets.Add("Horas");

workSheet.Cell("A1").Value = "Hola";

return workBook;
}

在我的 Controller 中 getResponse 是这样的 getResponse

getResponse

我开始疑惑了,因为我不知道我应该得到这个对象还是内存流。我不知道如何让前端得到这个,以便一旦收到我就可以在那里处理它。现在这显然给我错误

有什么想法吗?

问候

error fetch

最佳答案

将文件保存到流中并返回文件

var getResponse = await mediator.Send(new PrintPlanning(data));

var ms = new MemoryStream();
getResponse.SaveAs(ms);
ms.Position = 0;
return File(ms, "application/octet-stream", "filename");

或使用 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 而不是 application/octet-stream

关于c# - 如何在 Web API 的响应中附加文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58611002/

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