2010-05-06
■[html5] html5の File API を使って、アップロード無しで画像プレビュー
画像をプレビューするために、サーバへアップロードする必要がなくなります*1。
html
fileのアップロードフォームにonchangeを仕込んでおきます。
あとは、プレビュー表示用の要素だけ準備。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <form> <input type="file" name="file" onchange="preview(this)" /> </form> <hr /> <b>preview:</b><br /> <div id="preview_field"></div> </body> </html>
javascript
function preview(ele) { if (!ele.files.length) return; // ファイル未選択 var file = ele.files[0]; if (!/^image\/(png|jpeg|gif)$/.test(file.type)) return; // typeプロパティでMIMEタイプを参照 var img = document.createElement('img'); var fr = new FileReader(); fr.onload = function() { img.src = fr.result; // 読み込んだ画像データをsrcにセット document.getElementById('preview_field').appendChild(img); } fr.readAsDataURL(file); // 画像読み込み // 画像名・MIMEタイプ・ファイルサイズ document.getElementById('preview_field').innerHTML = 'file name: ' + file.name + '<br />' + 'file type: ' + file.type + '<br />' + 'file size: ' + file.size + '<br />'; }
スバラシイ。
トラックバック - http://d.hatena.ne.jp/favril/20100506/1273143063
リンク元
- 707 http://d.hatena.ne.jp/kuwalab/20110106/p2
- 107 http://www.google.co.jp/search?sourceid=chrome&ie=UTF-8&q=html5+画像
- 74 http://www.google.co.jp/search?q=html5+File+API&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 70 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331099934734&ved=0CC0QFjAA&url=http://d.hatena.ne.jp/favril/20100506/1273143063&ei=HflWT6euFqnKmQXO_4mDCg&usg=AFQjCNF60fm_xRks5OJ7RvtfAVJieHo8_w
- 60 http://www.google.co.jp/url?sa=t&rct=j&q=html5 画像&source=web&cd=13&ved=0CHoQFjAM&url=http://d.hatena.ne.jp/favril/20100506/1273143063&ei=tpKrTuvECMafmQW60sTVDg&usg=AFQjCNF60fm_xRks5OJ7RvtfAVJieHo8_w&sig2=4tq30KkllqnXPpoNEYV-C
- 54 http://twitter.com/
- 52 http://www.nikemania.com/board_new/bbs_read.php?bbs=bulman&num=6290
- 48 http://d.hatena.ne.jp/oovu70/20111122/p1
- 46 http://pipes.yahoo.com/pipes/pipe.info?_id=faa858a20082ef6d25ad27557e37e011
- 43 http://www.google.co.jp/search?aq=f&sourceid=chrome&ie=UTF-8&q=html5+api