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?
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
Peut-être que ce post https://stackoverflow.com/questions/21008732/javascript-save-blob-to-localstorage peut vous aider à sauvegarder blob dans localStorage. – 0liveradam8