2017-08-19 1 views
0

J'ai essayé de télécharger un fichier zip à partir d'un serveur Web en utilisant javascript- et je suis confronté à des défis avec l'archive corrompue.Télécharger zipfile provoque la corruption de fichiers

J'utilise la fonction suivante pour télécharger

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

Je reçois les erreurs suivantes lorsque je tente d'ouvrir l'archive

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

À titre d'exemple, lors du téléchargement du fichier sur sample.zip ce lien, le fichier est téléchargé à une taille de 975k. http://jadonchemicals.com/Blobtozip/

Lorsque je tente de faire la même chose en utilisant programatically javascript en reliant le script à un bouton, la taille du fichier augmente à 1779k et le fichier est corrompu

Je soupçonne que c'est le résultat d'un problème de codage. Pourriez-vous suggérer ce que je devrais faire pour résoudre?

Répondre

0

Vous pouvez télécharger un fichier javascript comme ceci:

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

Il vous suffit d'insérer le code dans votre document html. J'ai essayé de télécharger votre fichier spécifié en utilisant ceci et il était le bon 975 Ko et n'était pas corrompu.

+0

merci @ 0liveradam8 ... J'ai manqué de mentionner une partie critique du besoin. Nous devons également envoyer le fichier à un serveur de cloud et donc chercher à former le fichier dans LocalStorage à partir du blob. Si je télécharge, je ne peux pas le faire automatiquement. Construire le fichier provoque la corruption – user7995357

+0

Peut-être que ce post https://stackoverflow.com/questions/21008732/javascript-save-blob-to-localstorage peut vous aider à sauvegarder blob dans localStorage. – 0liveradam8