jQueryでファイル選択時にプレビュー表示する方法
jQueryでファイル選択時にプレビュー表示する方法を紹介します。
1.はじめに
フォームのファイル選択で画像を選択したときに画像のプレビューを表示したい場合があると思います。
ということで、jQueryを使って画像をプレビュー表示する方法を紹介します。
2.ファイル選択時にプレビュー表示する
まず、下記のファイル選択フォームを用意します。
<form>
<input type="file" id="file" />
</form>
<div id="result"></div>
そして次のjQueryを追加します。
<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script>
$(function(){
$('#file').change(function(){
$('img').remove();
var file = $(this).prop('files')[0];
if(!file.type.match('image.*')){
return;
}
var fileReader = new FileReader();
fileReader.onloadend = function() {
$('#result').html('<img src="' + fileReader.result + '"/>');
}
fileReader.readAsDataURL(file);
});
});
</script>
3.解説
ファイルが選択されたときに下記のchange()が起動します。
$('#file').change(function(){
//...
}
img要素を一旦削除します(繰り返し実施する場合を想定)。
$('img').remove();
選択したファイルのオブジェクトを取得します。
var file = $(this).prop('files')[0];
ファイルタイプが画像でない場合は処理を終了します。
if(!file.type.match('image.*')){
return;
}
FileReaderのreadAsDataURLメソッドで指定したFileオブジェクト(さきほどのfile)を読み込みます。
var fileReader = new FileReader();
:
fileReader.readAsDataURL(file);
読込処理が終了するとloadendイベントが生じ、resultプロパティにbase64エンコーディングされた "data: URL" 文字列(ファイルのデータ)が格納されるので、このタイミングでimg要素を生成します。src属性にはbase64エンコーディングされたデータを指定します。
fileReader.onloadend = function() {
$('#result').html('<img src="' + fileReader.result + '"/>');
}
Posted by yujiro このページの先頭に戻る
- jQuery+ajaxでモーダルのコンテンツを取得する方法
- jQueryでパスワードの表示・非表示を切り替えるサンプル
- ラジオボタンをjQueryで解除する方法
- テーブルのセルをポイントすると行と列を反転表示するjQueryプラグイン「Table Hover」
- jQueryで親ページからiframeのスクロールバーを非表示にする方法
- jQueryのカスタムビルドが簡単にできるサービス「jQuery Builder」
- jQueryでCSSをまとめて書き換える方法のまとめ
- 親ページからiframe内の要素にCSSを適用させる方法
- jQueryで要素を削除する方法のまとめ
- jQueryでテキストを追加するたびにスクロールさせる方法
- jQuery.ajax()でファイルをアップロードする方法
- preventDefault()で無効にしたイベントを有効にする方法
- jQueryで要素数を取得する方法のまとめ
- jQueryやJavaScriptでパスワードフィールドの文字を表示する方法
- jQueryでフォームデータを送信する方法のまとめ
トラックバックURL
コメントする
greeting