Dud*_*310 4 javascript url download jszip
在javascript中,是否可以将多个下载网址发送到一个zip文件中,并且可以下载该zip文件。差不多,在我的网页上,只有一个按钮,当单击该按钮时,会从压缩为zip的下载URL中下载所有文件的zip文件?
我相信我需要使用jszip或类似的工具。这完全有可能吗?关于从哪里开始有什么建议吗?
您可以使用JSZip.js,XMLHttpRequest(),Array.prototype.map(),Promise.all()创建.zip时文件的所有请求都完成的文件; 使用<a>带有元素download属性设置为objectURL中.zip在文件JSZip .generateAsync()功能,点击a元素应该显示Save File对话框,创建.zip可下载的文件。
<head>
<script src="jszip.js"></script>
<script>
window.onload = function() {
var zip = new JSZip();
var a = document.querySelector("a");
var urls = ["a.html", "b.html"];
function request(url) {
return new Promise(function(resolve) {
var httpRequest = new XMLHttpRequest();
httpRequest.open("GET", url);
httpRequest.onload = function() {
zip.file(url, this.responseText);
resolve()
}
httpRequest.send()
})
}
Promise.all(urls.map(function(url) {
return request(url)
}))
.then(function() {
console.log(zip);
zip.generateAsync({
type: "blob"
})
.then(function(content) {
a.download = "folder" + new Date().getTime();
a.href = URL.createObjectURL(content);
a.innerHTML = "download " + a.download;
});
})
}
</script>
</head>
<body>
<a href="" download>download</a>
</body>
Run Code Online (Sandbox Code Playgroud)
plnkr http://plnkr.co/edit/baPtkILg927DtJfh4b5Y?p=preview
| 归档时间: |
|
| 查看次数: |
11421 次 |
| 最近记录: |