下载zipfile会导致文件损坏

时间:2017-08-19 18:43:56

标签: javascript zip

我尝试使用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并且文件已损坏

我怀疑这是编码问题的结果。你能建议我该怎样解决吗?

1 个答案:

答案 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并且没有损坏。