HTMLタグのinput type=”file”で選択した画像をJavaScriptでブラウザに表示する方法です。

一度サーバーにポストせずにフロント側でJavaScriptで表示させるの時に使用します。

画像をJavaScriptで表示

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <script type="text/javascript">
  const fileup = (e) => {
    const img = document.getElementById('img');
    const reader = new FileReader();
    reader.onloadend = () => {
      img.src = reader.result;
    }
    reader.readAsDataURL(e.files[0]);
  }
  </script>
</head>
<body>
  ファイル:<input type="file" accept="image/jpeg,image/png,image/gif" onchange="fileup(this)" />
  <div>
    <img src="" id="img" />
  </div>
</body>
</html>

input type=”file”で画像を選択した後onchangeイベントでイベントを発火させます。

FileReader()のonloadendでファイル読み込み後にimgタグのsrcにdata:~形式の画像を渡します。

これでブラウザのimgタグの場所に画像が表示されます。

imgタグにデータを渡すのでacceptでファイルタイプをjpeg,png,gifに限定しています。

ブラウザ表示

jsで画像を表示

inputタグで画像を選択するとブラウザに選択した画像が表示されます。

JavaScriptだけで画像をブラウザに表示することができました。