2017-08-19 41 views
0

JavaScriptを使用してプログラムでWebサーバーからzipファイルをダウンロードしようとしましたが、アーカイブが壊れているという問題に直面しています。私は例としてアーカイブzipfileをダウンロードするとファイルが破損する

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

を開こうとすると上のsample.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(); 
} 

をダウンロードするには、次の機能を使用しています

このリンクでは、ファイルは975kのサイズにダウンロードされます。 http://jadonchemicals.com/Blobtozip/

私はプログラム的に私は、これはエンコーディングの問題の結果である疑い1779kし、ボタンにスクリプトをリンクすることによって、ファイルサイズが大きくなるのはJavaScriptを使用して、ファイルが

を破損しているのと同じことをしよう。解決するために何をすべきかを提案できますか?

答えて

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で破損していませんでした。

+0

ありがとう@ 0liveradam8 ...私は必要性の重要な部分について言及していませんでした。また、ファイルをクラウドサーバーに送信し、blobからLocalStorageにファイルを作成する必要があります。私がダウンロードした場合、私はこれを自動的に行うことはできません。ファイルをビルドすると破損が発生している可能性があります – user7995357

+0

おそらく、この投稿はhttps://stackoverflow.com/questions/21008732/javascript-save-blob-to-localstorageによってローカルストレージにBLOBを保存するのに役立ちます。 – 0liveradam8

関連する問題