HTML5のFile APIを勉強しているときにbase64というものを知りました(wikipedia:Base64)。というわけで、今回は勉強したFile APIを使って作った簡単なプログラムの掲載。なお、IE9には対応していないようです。
<form> <input type="file" onchange="fileget(this);"> <textarea id="base64area">base64データ</textarea> </form> <script type="text/javascript"> function fileget(imgfile) { if(!imgfile.files.length) return; var file=imgfile.files[0]; var fr=new FileReader(); fr.onload=function(evt) { document.getElementById("base64area").innerHTML=evt.target.result; document.getElementById("datauri").href=evt.target.result; } fr.readAsDataURL(file); } </script>
画像などのファイルを選択すると、base64のdataスキームURIがテキストエリア内に表示されるはずです。画像やHTMLファイルの場合、コピーしてブラウザのアドレスバーに貼り付けると、ブラウザにちゃんと表示されると思います。
特に、画像を扱う場合に、どこかのサーバーにアップロードせずに画像を表示することができるため、重宝される使い方です。ただし、サイズ自体は元のファイルより大きくなります。
コメント