gpt4 book ai didi

javascript - 在angular js中从web api下载csv文件

转载 作者:IT王子 更新时间:2023-10-29 03:01:48 24 4
gpt4 key购买 nike

我的 API Controller 正在返回一个 csv 文件,如下所示:

    [HttpPost]
public HttpResponseMessage GenerateCSV(FieldParameters fieldParams)
{
var output = new byte[] { };
if (fieldParams!= null)
{
using (var stream = new MemoryStream())
{
this.SerializeSetting(fieldParams, stream);
stream.Flush();
output = stream.ToArray();
}
}
var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(output) };
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "File.csv"
};
return result;
}

我将发送和接收 csv 文件的 angularjs 如下所示:

$scope.save = function () {
var csvInput= extractDetails();

// File is an angular resource. We call its save method here which
// accesses the api above which should return the content of csv
File.save(csvInput, function (content) {
var dataUrl = 'data:text/csv;utf-8,' + encodeURI(content);
var hiddenElement = document.createElement('a');
hiddenElement.setAttribute('href', dataUrl);
hiddenElement.click();
});
};

在 chrome 中,它会下载一个名为 document 但没有文件扩展名的文件。文件内容为[Object object]

在 IE10 中,不下载任何内容。

我该怎么做才能解决这个问题?

更新:这可能对你们有同样问题的人有用:link

最佳答案

试一试:

File.save(csvInput, function (content) {
var hiddenElement = document.createElement('a');

hiddenElement.href = 'data:attachment/csv,' + encodeURI(content);
hiddenElement.target = '_blank';
hiddenElement.download = 'myFile.csv';
hiddenElement.click();
});

基于this question中最优秀的答案

关于javascript - 在angular js中从web api下载csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300547/

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