我正在尝试使用 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'
我正在使用最新版本的 Google Chrome,截至今天(2011 年 5 月 31 日)是版本:11.0.696.71,根据消息来源,最新版本的 Chrome 应该支持此方法。
这似乎不起作用,所以我尝试使用FileReader
API,但也没有任何运气。我尝试这样做无济于事:
$('#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。我在网上搜索了无数的例子,但无济于事。我怎样才能让它工作?