tag:crieit.net,2005:https://crieit.net/users/itsumoonazicode/feed キココの投稿 - Crieit Crieitでユーザーキココによる最近の投稿 2018-10-29T11:56:04+09:00 https://crieit.net/users/itsumoonazicode/feed tag:crieit.net,2005:PublicArticle/14541 2018-09-15T22:41:58+09:00 2018-10-29T11:56:04+09:00 https://crieit.net/posts/input-type-file 【スニペット】input type="file"から画像を選択したときに、サムネイルを表示させる <h1 id="FileRearderオブジェクトを使うと、画像パスを取得しなくても良い"><a href="#FileRearder%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%80%81%E7%94%BB%E5%83%8F%E3%83%91%E3%82%B9%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%AA%E3%81%8F%E3%81%A6%E3%82%82%E8%89%AF%E3%81%84">FileRearderオブジェクトを使うと、画像パスを取得しなくても良い</a></h1> <p>オブジェクトのresultプロパティに、Data URL形式のデータが入っているため。<br /> (<strong>readAsDataURL</strong>メソッドで取得可能)</p> <p>バイナリファイルを上記の方法で取得可能なために実現できる。</p> <p>以下、コードを記述。<br /> <code>index.html</code></p> <pre><code class="HTML"><!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>music library</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> #btn_to_show_img { padding: 20px; } </style> </head> <body> <h1>買ったCDをビジュアル的に管理したい</h1> <input type="file" name="" id="image_file"> <button id="btn_to_show_img">Show</button> <hr> <div id="list"></div> <script src='main.js'></script> </body> </html> </code></pre> <p><code>main.js</code></p> <pre><code class="JavaScript">const ImgFile = document.getElementById('image_file'); const BtnShow = document.getElementById('btn_to_show_img'); BtnShow.addEventListener('click', (res) => { // FileReaderオブジェクトを使う const input = ImgFile.files[0]; const reader = new FileReader(); console.table(reader); reader.addEventListener('load', (e) => { // imgタグを作成する const img_anchor = document.createElement('img'); img_anchor.src = reader.result; const list = document.getElementById('list'); list.appendChild(img_anchor); }, true); // エラーハンドリング reader.addEventListener('error', () => { console.error(reader.error.message); }, true); reader.readAsDataURL(input); // 画像を表示させるごとにvalueを初期化する ImgFile.value = ""; }, true); </code></pre> キココ