我有一个成功的功能,它命中服务器,发送数据列表处理它并在处理过的数据上创建一个excel文件。整个代码工作正常,但我无法下载文件。正在服务器上创建文件。
客户端代码是..
dtyp
服务器端:
MOCService.getFilterExcel($scope.filterExcel).success(function (data, responce) {
console.log(responce)
return responce;
})
如果我直接从URL点击动作方法,那么文件会被下载,但是通过应用程序它不会下载。
答案 0 :(得分:0)
var blob = new Blob([res.data], {type: "application/*"});
var objectUrl =(window.URL || window.webkitURL).createObjectURL(blob);
var downloadLink = document.createElement("a");
document.body.appendChild(downloadLink);
downloadLink.style = "display: none";
downloadLink.href = objectUrl;
downloadLink.download = "Sample.xlsx";
downloadLink.click();
这适合我。
答案 1 :(得分:0)
我知道使用AJAX下载文件的最佳方法是使用FileSaver.js。这会处理你自己必须做的各种各样的技巧。所以你只需要使用Blob api获取blob本身并将其与FileSaver.js
结合起来将文件保存到磁盘。
P.S。谷歌和SO上有多个信息(例如here)如何使用AJAX获取blob,然后你可以使用FileSaver.js
github页面来弄清楚如何将blob保存到磁盘。