【问题标题】:change fileName while downloading in angularjs在angularjs中下载时更改文件名
【发布时间】:2015-11-25 11:10:09
【问题描述】:

我需要从 angularjs 中的 ajax GET 请求下载文件(ajax 查询重定向到下载链接)。我目前的方法是制作一个不可见的 iframe 并在其中加载该 url,以便为下载的文件获取“另存为”弹出窗口。但是我需要在另存为弹出窗口之前更改文件的名称。

请提出一种实现相同目标的方法。

【问题讨论】:

  • 文件名将由服务器定义,您需要发送content-disposition 标头来更改它。见stackoverflow.com/questions/1012437/…
  • 链接是 Amazon S3 资源。有没有办法在客户端而不是服务器更改文件名?
  • 我对此表示怀疑。可能可以使用 js FileReader 读取数据并使用 blob 保存,但我怀疑如果你有任何工作它不会在所有浏览器中正常工作。看看这个:stackoverflow.com/questions/13405129/…

标签: javascript html ajax angularjs


【解决方案1】:

您可以使用由 eligrey 编写的 Filesaver.js 脚本(我在此处的示例中使用 angularjs)您可以使用 XmlHttpRequest 对象在经典 javascript 中实现相同的功能

//In your html code , add these : ->
<script src="https://rawgit.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
//In your Javascript:- 

$http({
    url: "url where the file is located",
    method: "GET",
    responseType: "blob"
}).then(function (response) {

saveAs(response.data,"newfilename.extension");

})    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多