如何使用Asp.NetCore和Angular下载文件

23 浏览
0 Comments

如何使用Asp.NetCore和Angular下载文件

我正在使用Excel从一个网页上开发报告。该页面包含一些图表和一些表格中的数据。

我有一个Excel文件,它作为一个模板来写入文件中的数据。我在工作表中创建了一些图表,并在一些工作表中写入了数据,并引用这些数据来使用图表。一切都很顺利,唯一的问题是我无法下载文件。

我创建了一段代码来做这个,并且成功生成了文件。我现在想要做的是下载这个文件。

因此,我尝试了一些方法:

我生成了文件,并成功下载了文件,但是文件却损坏了。

API

var mimeType = "application/vnd.ms-excel";
string file = Path.Combine(path, fileName);
var memory = new MemoryStream();
using (var stream = new FileStream(file, FileMode.Open))
{
    stream.CopyTo(memory);
}
memory.Position = 0;
return File(memory, mimeType, "filename.xlsx");

Angular

return $http.post(url, data, config)
    .then(function (response) {
    //TODO: Implementar o download do arquivo
    var file = new Blob([data], { type: 'application/vnd.ms-excel' });
    saveAs(file, 'filename.xlsx');
    }).catch(function (error) {
        console.log("error");
    });

0
0 Comments

问题的原因是在下载文件时,代码中的一行出现了错误。解决方法是更改该行代码,将变量"data"改为"response.data"。另外,也可以尝试使用下面的代码,它可以正常工作。在执行代码时,没有出现任何错误。如果要查看代码,可以将其发送给我。修改后的解决方案是返回一个字节数组并更改请求的响应类型为'arraybuffer'。通过这些修改,问题得到了解决。

0