“另存为blob”需要很长时间才能从给定的url下载文件
Save as blob takes too long to download the file from given url
我已经编写了以下服务来从给定的URL保存文件。
(function() {
angular.module('SOME_APP')
.service("downloadService", downloadService);
function downloadService($http){
var downloadFileFromUrl = downloadFileFromUrl;
function downloadFileFromUrl(url){
if(!url.length){
//TO-DO handle the error
}
else{
//find the file name and extension, to save it as:
var fileName;
for(var i=url.length; i>=0; i--){
if(url[i]=='/'){
fileName=url.slice(i+1, url.length);
console.log(fileName);
break;
}
}
$http({
url: url,
method: "GET",
responseType: 'arraybuffer'
}).success(function (data) {
var blob = new Blob([data], {type: '*/*'});
saveAs(blob, fileName);
}).error(function (data) {
console.log(data);
//TO-DO error handling
});
}
}
return {
downloadFileFromUrl : downloadFileFromUrl
}
}
}());
当我调用该服务时,该服务首先下载文件,下载完成后,它会在浏览器中显示下载情况(进度为100%)。如何使其正常工作?(在浏览器中启动下载,并逐渐显示进度)
我的意图是从给定的url下载一个文件。我使用HTML5锚标记实现了它,下载属性为:
在index.html中:
<a id='downloadTag' href="" download hidden></a>
在役:
document.getElementById("downloadTag").href=url;
document.getElementById("downloadTag").click();
这解决了我的问题。
相关文章:
- 无法在本地计算机中将画布另存为图像
- 如何将 html5 画布另存为窗口 8 Metro 应用程序中的图像文件
- 试图制作一个“;另存为“;使用php's”;file_put_contents”;和javascript&quo
- Safari浏览器上的“强制另存为”对话框
- 强制浏览器打开“;另存为“;对话框
- execCommand('另存为',true,'data.csv');不在IE工作
- 更改音频速度,然后另存为新文件
- 将响应另存为文件
- 覆盖 HTML 画布上的“另存为”行为
- 如何在浏览器中触发另存为对话框,以便可以在内存中保存 json 数据
- 更改“将图像另存为”的操作以重定向到相应的网页
- 如何为图像创建“另存为”按钮
- 将 JavaScript 对象另存为字符串
- 如何定义图像'另存为'大小
- 使用javascript将画布另存为图像
- 嵌套画布另存为单个图像
- 如何在Chrome中禁用“另存为”对话框
- 将画布对象另存为图像-黑色背景
- 使用JavaScript,我可以上传一个word文件并使用.replaces然后另存为新文档吗
- “另存为blob”需要很长时间才能从给定的url下载文件