gpt4 book ai didi

c# - 使用 Web Api 2 Angular 下载 csv 文件

转载 作者:行者123 更新时间:2023-11-30 19:55:45 24 4
gpt4 key购买 nike

我正在尝试使用 web api 2 和 angular js 下载 csv 文件。

这是我的 Controller 代码

public IHttpActionResult ExportCsvData()
{
var stream = new FileStream("Testcsv.csv", FileMode.Open, FileAccess.Read);
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Testcsv.csv"
};

return Ok(response);
}

这是我的 Angular 代码,

var filename = 'testcsv.csv';
var contentType = 'text/csv;charset=utf-8';
var blob = new Blob([data], { type: contentType });
if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, filename);
}

我正在使用 IE 11,但是当我在 excel 中打开文件时,它看起来像这样,

{   "version": {
"major": 1
"minor": 1
"build": -1
"revision": -1
"majorRevision": -1
"minorRevision": -1 } "content": {
"headers": [
{
"key": "Content-Type"
"value": [
"application/octet-stream"
]
}
{
"key": "Content-Disposition"
"value": [
"attachment; filename=testcsv.csv"
]
}
]

我做错了什么?

谢谢!

最佳答案

您需要返回响应消息。 Ok() 将按原样序列化 HttpResponseMessage。

public IHttpActionResult ExportCsvData()
{

var stream = new FileStream("Testcsv.csv", FileMode.Open, FileAccess.Read);
var response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Testcsv.csv"
};

return ResponseMessage(response);
}

关于c# - 使用 Web Api 2 Angular 下载 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948715/

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