使用XMLHttpRequest部分下载Zip文件

时间:2018-09-17 10:06:45

标签: javascript ajax

我正在使用以下代码从服务器下载我的zip文件,但是该zip文件正在部分下载而不是全部下载。

例如,该zip文件应该包含10个文件,但是当我解压缩时,它只有5个文件。

如果直接点击URL http://10.176.226.137:5000/download,我将获得完整的zip文件。

  $scope.downloadData = function (){
  console.log ('Entering in to Download Method')
  var url = 'http://10.176.226.137:5000/download';
  var xhr = new XMLHttpRequest();
  xhr.ontimeout = function () {
        console.error("The request for " + url + " timed out.");
    };
  xhr.open("POST", url,true);
  xhr.timeout = 10000;
  xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
  var linkElement = document.createElement('iframe');
  document.body.appendChild(linkElement)
  xhr.onreadystatechange = function() {
  if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
        var blob = new Blob([str2bytes(xhr.response)], {type: "application/zip"});
        var fileName = "logs.zip";
        if (window.navigator && window.navigator.msSaveOrOpenBlob) {
            window.navigator.msSaveOrOpenBlob(blob, fileName);
        } else {
            saveAs(blob,"logs.zip")
          }
    }
    }
 xhr.send(null);
};

由于我是JS的新手,如果有人可以帮助我解决这个问题,那就好了吗?

0 个答案:

没有答案