我尝试使用javascript-以编程方式从网络服务器下载zip文件,并且面临着存档遭到破坏的挑战。
我正在使用以下功能下载
function download(){
var http = new XMLHttpRequest();
http.open("GET", 'http://jadonchemicals.com/sample.zip');
http.setRequestHeader("dataType", "jsonp");
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200)
{
var blobdata=new Blob([http.responseText], {type: "application/zip"});
var a = document.createElement("a");
a.href = window.URL.createObjectURL(blobdata);
a.click();
}
};
http.send();
}
尝试打开存档时出现以下错误
a) The file header is corrupt
b) unexpected end of archive
例如,在此链接上下载sample.zip文件时,文件的下载大小为975k。 http://jadonchemicals.com/Blobtozip/
当我尝试通过将脚本链接到按钮来使用javascript以编程方式执行相同操作时,文件大小增加到1779k并且文件已损坏
我怀疑这是编码问题的结果。你能建议我该怎样解决吗?
答案 0 :(得分:0)
你可以用这样的javascript下载文件:
<iframe id="my_iframe" style="display:none;"></iframe>
<script>
function Download(url) {
document.getElementById('my_iframe').src = url;
};
Download("http://jadonchemicals.com/sample.zip")
</script>
您只需将代码插入到html文档中即可。 我已经尝试使用它来下载你指定的文件,它是正确的975KB并且没有损坏。