W3Cで標準化が進められている「File API」を使うと、指定したローカルファイルのファイル情報やファイルの中身(データ)をJavaScriptで取得できます。今回のJavaScriptラボはこのFile APIを使って、ブラウザー上にファイルの内容を表示してみましょう。テキストファイルの内容をそのまま表示するサンプルと、バイナリファイルを16進数データの羅列(バイナリダンプ、ダンプリスト)として表示するサンプルを作成します。
File APIの対応ブラウザー
File APIは2010年10月現在、以下のブラウザーで利用できます。
- Firefox 3.6 / 4β
- Google Chrome 6
このほか、Safari 5が、File APIを使ったファイル情報(ファイル名やファイルサイズなど)の取得に対応していますが、ファイル内容へのアクセスはできないので今回作成するサンプルは動作しません。また、Opera 10.6、Internet Explorer 9(ベータ)ではFile APIは利用できません。
ブラウザーがFile APIを実装しているかどうかは以下のようにして簡単に調べられます。
<h1>File APIが使用可能か調べる</h1>
<div id="result">File APIは使用できません</div>
<script>
if (window.File){
document.getElementById("result").innerHTML = "File APIは使用できます";
}
</script>
以降のサンプルはFile APIが扱える前提で作成していますが、実際に利用するときにはサンプル1の方法でブラウザーの実装状況をチェックした後で、File APIを使った処理を記述してください。