1. ホーム
  2. html

[解決済み] HTML - ファイル名を選択した後に画像を表示する [重複]。

2022-04-21 09:10:53

質問

を使用できるフォームがあります。

<input type="file" name="filename" accept="image/gif, image/jpeg, image/png">

をクリックすると、ファイルをブラウズして選択することができます。

私がしたいのは、画像が選択された直後にその画像を表示することです。 そして、これはフォームの "submit"ボタンが押される前なので、画像はほぼ確実にクライアント側に存在します。これは可能なのでしょうか?

解決方法は?

お待たせしました。

HTML

<!DOCTYPE html>
<html>
  <head>
    <link
      class="jsbin"
      href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css"
      rel="stylesheet"
      type="text/css"
    />
    <script
      class="jsbin"
      src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"
    ></script>
    <script
      class="jsbin"
      src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"
    ></script>
    <meta charset="utf-8" />
    <title>JS Bin</title>
    <!--[if IE]>
      <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <style>
      article,
      aside,
      figure,
      footer,
      header,
      hgroup,
      menu,
      nav,
      section {
        display: block;
      }
    </style>
  </head>
  <body>
    <input type="file" onchange="readURL(this);" />
    <img id="blah" src="#" alt="your image" />
  </body>
</html>

スクリプトです。

function readURL(input) {
  if (input.files && input.files[0]) {
    var reader = new FileReader();

    reader.onload = function (e) {
      $('#blah').attr('src', e.target.result).width(150).height(200);
    };

    reader.readAsDataURL(input.files[0]);
  }
}

ライブデモ