【发布时间】:2021-02-13 14:10:08
【问题描述】:
前端
var url = baseUrl+ "/api/Home/DownloadReport";
window.open(url);
后端
[HttpGet]
public HttpResponseMessage DownloadReport()
{
var stream = new System.IO.MemoryStream(File.ReadAllBytes(@"C:\Users\mypc\Desktop\Test\5\WebApplication1\Report.xlsx"));
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(stream);
};
result.Content.Headers.ContentDisposition = new
System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
{
FileName = "myworkbook.xlsx"
};
result.Content.Headers.ContentType = new
System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentLength = stream.Length;
return result
}
我正在尝试使用 web API 和 angularjs 下载一个 excel 文件,但是当我单击下载按钮时,它会打开一个新选项卡,其中包含如下消息但不下载文件有人可以向我建议代码有什么问题.
StatusCode:200,ReasonPhrase:'OK',Version:1.1,Content:System.Net.Http.ByteArrayContent,Headers:{Content-Type:application/octet-stream Content Disposition:attachment;filename=myworkbook.xlsx}
我知道之前有人问过这个问题,但尝试了很多解决方案,但都无法解决问题
【问题讨论】:
标签: c# angularjs asp.net-web-api asp.net-web-api2