2017-08-19 7 views
0

Ich habe versucht, eine zipfile von einem Webserver programmatisch mit Javascript herunterladen und vor Herausforderungen mit dem Archiv beschädigt werden.Das Herunterladen von Zipfile führt zu Dateikorruption

ich die folgende Funktion bin mit

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(); 
} 

ich die folgenden Fehler bekommen herunterladen, wenn ich versuche, das Archiv zu öffnen

a) The file header is corrupt 
b) unexpected end of archive 

Als Beispiel, während die Datei sample.zip Download auf Mit diesem Link wird die Datei auf eine Größe von 975k heruntergeladen. http://jadonchemicals.com/Blobtozip/

Wenn ich versuche, durch die Verknüpfung das Skript auf eine Schaltfläche, um die gleiche programmatisch mit Hilfe von Javascript zu tun, um 1779k die Dateigröße zunimmt und die Datei

beschädigt Ich vermute, das ein Ergebnis einer Codierung Problem. Könnten Sie mir vorschlagen, was ich tun sollte, um es zu lösen?

Antwort

0

Sie können eine Datei in Javascript wie folgt herunterladen:

<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> 

Sie müssen nur den Code in Ihre HTML-Dokument einzufügen. Ich habe versucht, Ihre angegebene Datei mit diesem herunter zu laden und es war die richtige 975KB und war nicht beschädigt.

+0

danke @ 0liveradam8 ... Ich vermisste erwähnen einen kritischen Teil der Notwendigkeit. Außerdem müssen wir die Datei an einen Cloud-Server senden und daher versuchen, die Datei in LocalStorage aus dem Blob zu erstellen. Wenn ich herunterlade, kann ich das nicht automatisch machen. Das Erstellen der Datei verursacht die Korruption – user7995357

+0

Vielleicht kann dieser Beitrag https://stackoverflow.com/questions/21008732/javascript-save-blob-to-localstorage Ihnen helfen, Blob zu localStorage zu speichern. – 0liveradam8

Verwandte Themen