use*_*525 2 c# csv angularjs asp.net-web-api2
我正在尝试使用web api 2和angular js下载csv文件.
这是我的控制器代码
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);
}
Run Code Online (Sandbox Code Playgroud)
这是我的角度代码,
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);
}
Run Code Online (Sandbox Code Playgroud)
我正在使用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"
]
}
]
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢 !
您需要返回响应消息.该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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5341 次 |
| 最近记录: |