我正在开发一个 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");