【发布时间】:2023-12-12 13:40:01
【问题描述】:
我正在尝试使用 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'
我正在使用最新版本的谷歌浏览器,截至今天(2011-05-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。我在网上搜索了无数的例子,但无济于事。我怎样才能让它工作?
【问题讨论】:
标签: file html filereader