【JavaScript】URLから画像ファイルをダウンロードする

JavaScript のコードから画像ファイルをダウンロードする方法についてです。
Web だったら、通常は画像右クリックで表示されるメニューからダウンロードができますが、諸事情あってその方法が使えなかったので、実装しました。

参考にさせていただいた記事はこちらから。

How to download image in reactjs? – Stack Overflow
https://stackoverflow.com/questions/57056741/how-to-download-image-in-reactjs

 

サンプルコードはこちら。

downloadImage = (url) => {
  const matches = url.match(/[A-Za-z0-9\-_]+\.\w+$/);

  fetch(url, {
    method: 'GET',
    headers: {},
  })
    .then((response) => {
      response.arrayBuffer().then((buffer) => {
        const url = window.URL.createObjectURL(new Blob([buffer]));
        const link = document.createElement('a');
        link.href = url;
        link.setAttribute('download', matches[0]);
        document.body.appendChild(link);
        link.click();
      });
    })
    .catch((err) => {
      console.log(err);
    });
}

downloadImage() という関数内で、画像ダウンロードの処理を行っています。
使用する際には、引数にダウンロードしたい画像 URL を渡してください。

上記を実行すると、ダウンロードのダイアログが表示されるので、そこから画像をダウンロードできます!
念のため、ダウンロードした画像を開いてみましたが、画像の一部が壊れていたり、画質が粗くなっていたりもしていませんでした。
また、この方法だと画像だけでなく動画も保存できましたので、もしコード上でURLから画像をダウンロードする際には、この方法がおすすめです。

 

以上、JavaScript でURLから画像をダウンロードする方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG