首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >下载文件AngularJS

下载文件AngularJS
EN

Stack Overflow用户
提问于 2014-11-26 11:06:55
回答 1查看 2.4K关注 0票数 0

我正在尝试从asp.net控制器ActionResult下载一个文件,但是如何从浏览器下载呢?

我正在返回控制器级别的文件

代码语言:javascript
运行
复制
  return File(pdfStream, "application/pdf", "sample.pdf");

关于角码

代码语言:javascript
运行
复制
reportService.getReport().then(function(file){

  //how to make this file download  

})

我试过使用此代码,但只在浏览器为chrome但文件内容为空时才下载pdf。

代码语言:javascript
运行
复制
reportService.getReport().then(function (file) {
    var hiddenElement = document.createElement('a');
    hiddenElement.href = 'data:attachment/pdf,' + encodeURI(file);
    hiddenElement.target = '_blank';
    hiddenElement.download = 'myFile.pdf';
    hiddenElement.click();
});

响应头看起来像

任何帮助都感谢!!

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-26 12:23:44

假设您使用的是$http.post

您可以使用FileSaver.js https://github.com/eligrey/FileSaver.js

并将响应类型设置为blob。

就像这样,

代码语言:javascript
运行
复制
reportService.getReport().then(function(url, data){

return $http.post(url, data, { responseType:'blob' })
                    .then(function (response) {                        
                        try {                            
                            $timeout(function () {
                                saveAs(response.data, "mypdf.pdf");                                
                            });
                        } catch (ex) {
                            console.log(ex);
                        }                                                
                    }, function (response) {
                        // error
                        return $q.reject(response.data);
                    });


})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27147536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档