我试图使用 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,文件已损坏
我怀疑这是编码问题的结果。你能建议我应该怎么做来解决吗?
你可以在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 并且没有损坏。