2017-02-01 11 views
0

base64文字列をデコードしてbase64文字列からファイルをダウンロードする必要がありますか? Previoslyは、私が使用してファイルをエンコード:javascript howto base64文字列として保存されたファイルをデコードしてダウンロードします

  var strEncoded=""; 
      file = $('#fileinput1')[0].files[0]; 

      var reader = new FileReader(); 
      reader.readAsDataURL(file); 
      reader.onload = function() { 
       strEncoded = reader.result; 
      }; 

はあなたが<a>リンクを作成し、そのhrefにデータを与えることができ、あなたに

+0

@GolezTrolはPHPが関与していないようですか? – K3N

+0

PHPではなく、JavaScriptのみ – cardonchas

答えて

0

B64のバージョンを使用しますが、代わりにあなたから持ってFileオブジェクトを直接行ってはいけないあなた入力。

最新のブラウザでは、アンカーのdownload属性をサポートしていますが、a.href = URL.createObjectURL(yourFile); a.download = 'yourfile.whateverExtension'を実行するだけです。

古いバージョンのブラウザの場合、数多くのハックがあります。そのすべてが偉大なFileSaver.jsライブラリに凝縮されています。

は次にあなたがする必要があるすべては

var inp = document.querySelector('input'); 
 
inp.onchange = function(){ 
 
    saveAs(this.files[0], 'yourFile.extension'); 
 
    };
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2014-11-29/FileSaver.js"></script> 
 
<input type="file"/>

0

ありがとうございます。例えば、私はこのようなデータ/画像BASE64を使用:

<a href="data:image/png;base64,iVBORw0K........" download>Download</a> 

download属性が仕事をするでしょう。

それとも単純にこれを試してみてください。

location.href = strEncoded; 

をAND関数で:

download(dataUrl) { 
    location.href = dataUrl; 
} 

<a href="javascript:;" onclick="download(strEncoded);">Download</a> 
+0

これはChromeでのみ実行され、IEではなく – cardonchas

+0

@cardonchasで表示されます。IEは常にazzの痛みです。私は自分の投稿を編集しました、あなたはjavascriptのバージョンを試すことができますか? –

+0

これはChromeで実行されますが、IEでは実行されません – cardonchas

関連する問題