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>
キココ