ChromeとFirefoxのHTML5でサポートされている「FileReader」および「File」APIを使用して画像をバイナリ配列に変換しようとしていますが、Chromeでは正しく機能していないようです。入力タイプとしてファイルを含む単純なHTMLページがあります。
<input id="image_upload" type="file" />
そしてここから、jQueryを使用して画像のコンテンツを取得し、APIを使用してFile.getAsBinary()
それをバイナリ配列に変換しています。これはFirefoxでは完全に機能しますが、Chromeでは機能しません。
$('#image_upload').change(function() {
var fileList = this.files;
var file = fileList[0];
var data = file.getAsBinary();
//do something with binary
});
このメソッドをChromeで実行すると、コンソールに次のエラーが表示されます。
uncaught TypeError: Object #<File> has no method 'getAsBinary'
私はGoogleChromeの最新バージョンを使用しています。これは今日(2011-05-31)のバージョン:11.0.696.71であり、情報源によると、この方法は最新バージョンのChromeでサポートされていると思われます。
それはうまくいかなかったので、私はAPIを使おうとしましたFileReader
が、それもうまくいきませんでした。私はこれを無駄にしようとしました:
$('#image_upload').change(function() {
var fileList = this.files;
var file = fileList[0];
var r = new FileReader();
r.readAsBinaryString(file);
alert(r.result);
]);
しかし、それは私が仮定するものを何も返さないだけです。なぜならreadAsBinaryString()
、はvoidメソッドだからです。ChromeとFirefoxの両方でこれを機能させる方法がまったくわかりません。私は無数の例を見てウェブ全体を検索しましたが、役に立ちませんでした。どうすれば動作させることができますか?