HTML5のFile APIにChromeではまった

最近流行っているHTML5にはローカルファイルにアクセスする手段”File API”が用意されています。
セキュリティー的にはどうかと思いもしますが私的には便利なのでOKです。
というか、ウェブブラウザがアプリケーションプラットフォームになるには必須ですね。

ということで、だいぶ前に”File API”を使ってみました。
が、はまりました。
“File API”を使ったテストアプリケーションをローカルに作って、
Google Chromeで読み込ませても、ローカルファイルが読めません。
ファイルサイズ等は取得できるのですが中身が読み込めないのです。

しょうがないのでめったに使わないIE9でやってもやはりだめ。
ところが、FireFoxだとうまくいくんですよね…なぜ?
で、テストアプリケーションをウェブサーバにアップしてアクセスしてみると、
なんとChromeでも期待通りに動作するようになりました。
IE9では相変わらず動作しませんが。

で、いろいろ調べてみると、
Chromeはローカルファイルとして読み込んだhtmlファイルからは
ローカルファイルへのアクセスは認められていないんだそうです。
もし許可したいのなら起動オプションに
–allow-file-access と –allow-file-access-from-files を加えればよいとのこと。
私は試していませんが、ローカルで開発作業する必要があればこれで解決できます。
ただし、そんなことしなくてもためしにChromeアプリケーションにして読み込んでしまうと
ローカルファイルが読めることが確認できました。
開発作業はこちらでやるのが楽ですね。
Chromeアプリケーションについてはこちらを参照ください。