通过sucess函数下载文件

时间:2016-12-03 09:16:51

标签: javascript angularjs asp.net-mvc-4

我有一个成功的功能,它命中服务器,发送数据列表处理它并在处理过的数据上创建一个excel文件。整个代码工作正常,但我无法下载文件。正在服务器上创建文件。

客户端代码是..

dtyp

服务器端:

MOCService.getFilterExcel($scope.filterExcel).success(function (data, responce) {
                    console.log(responce)
                    return responce;
                })

如果我直接从URL点击动作方法,那么文件会被下载,但是通过应用程序它不会下载。

2 个答案:

答案 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保存到磁盘。