0

这令人沮丧。我一直在 Safari、Firefox 和 Chrome(所有最新版本)中运行此代码,但它不起作用。它对其他人有用吗?我从<input type='file' id='file' name='file'>

console.log("Have now created a new file reader and it looks like this..." + reader);
reader.onload = function() {
var contents = event.target.result;
console.log("File contents: " + contents );
};
reader.onerror = function(event) {
console.error("File could not be read! Code " + event.target.error.code);
};
reader.readAsText(file);    
}, false);

我究竟做错了什么?

谢谢,

威尔斯

4

1 回答 1

3

我究竟做错了什么?

您似乎忘记了处理程序的event参数。onload而不是使用event.target,您也可以只使用reader.

此外,在小提琴中,您正在FileReader以一种非常奇怪的方式创建。您可能想阅读MDN 上的使用来自 Web 应用程序的文件的介绍。

document.getElementById("file").addEventListener("change", function(e) {
    var file = e.target.files[0],
        reader = new FileReader();
    console.log("Have now created a new file reader and it looks like this..." + reader);
    reader.onload = function(event) {
//                           ^^^^^
        var contents = event.target.result;
        console.log("File contents: " + contents );
    };
    reader.onerror = function(event) {
        console.error("File could not be read! Code " + event.target.error.code);
    };
    reader.readAsText(file);    
}, false);
于 2013-03-13T14:31:14.730 回答