javascriptでファイルダウンロードするには?

モダンブラウザでhtml属性の「download」が使えない...

仕方ないのでjavascriptを使いサーバー上のExcelファイルをダウンロードさせたい

ということがあったので備忘録的に...

File APIのBLOBを使うことで実現可能みたい!

 

1.BLOBオブジェクト作成

2.ファイル名を指定

3.window.URL.createObjectURLでBlobからURLを生成しそれをリンク先に設定

 

サンプルコード

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
</head>
<body>
  <div id="result"></div>
  <script>
    let blob = new Blob(['あいうえお'],{type:"text/plain"});
    let link = document.createElement('a');
    link.href = URL.createObjectURL(blob);
    link.download = '作ったファイル.txt';
    link.innerText = 'ダウンロードします';
    const result = document.getElementById('result');
    result.appendChild(link);
  </script>
</body>
</html>

 

参考:

qiita.com