Javascript:onload事件无法访问javascript的FileReader API

时间:2014-04-11 07:36:19

标签: javascript html

我需要在客户端级别创建提取文件的签名,以便确定其文件类型。下面是我的文件输入对象:

<input id="test1" type="file">

我写了以下javascript代码:

var fileInput = document.getElementById('test1');
fileInput.addEventListener('change', function(e) {
    console.log("file selected");
    var reader = new FileReader();
    reader.onload = function(e) {
        console.log("loaded");
        var file_slice = gcUploadFile.slice(0,4);
        console.log(file_slice);
        var arr_buffer = reader.readAsArrayBuffer(file_slice);
        console.log(arr_buffer);
    }
});

查看the fiddle for the above

我遇到的麻烦是我的代码甚至没有进入onload功能。

我做错了什么?

注意:我只使用普通的javascript进行编码,但我愿意使用Google Closure。

1 个答案:

答案 0 :(得分:1)

为什么它会到达onload处理程序,FileReader永远不会读取任何内容。

您必须将文件作为

读取,将文件传递给fileReader
var fileInput = document.getElementById('test1');
fileInput.addEventListener('change', function(e) {
    console.log("file selected");
    var reader = new FileReader();
    reader.onload = function(e) {
        console.log("loaded");
        var file_slice = gcUploadFile.slice(0,4);
        console.log(file_slice);
        var arr_buffer = reader.readAsArrayBuffer(file_slice);
        console.log(arr_buffer);
    }

    reader.readAsBinaryString(e.target.files[0]);

});