readAsText()
功能完成时,结果存储在.result
中
如何查看.result
中读取的文件内容是否正确?
fr = new FileReader();
fr.readAsText(file);
var x = fr.result;
console.log(x); //does not display anything on console
现在如何显示.result
对象以验证内容?
readAsText
是异步的,因此您需要使用onload
回调才能看到结果。
尝试类似的事情,
var fr = new FileReader();
fr.onload = function(e) {
// e.target.result should contain the text
};
fr.readAsText(file);
这里的更多信息,
这是一个完整的html和vanilla javascript示例,它创建一个简单的文件输入,并使用FileReader.readAsText()
读取文件的文件读取器,然后将该文件的文本内容写入控制台。这对于.txt或.csv这样的文件非常有效。
还有FileReader.readAsArrayBuffer()
,FileReader.readAsBinaryString()
和FileReader.readAsDataURL()
在其他用例中可能会更好。我也建议阅读https://developer.mozilla.org/en-US/docs/Web/API/FileReader
注意:用户可以选择多个文件以包含在输入中,此代码将仅读取其中的第一个文件(如在event.target.files
中对[0]元素的引用中所见。
<html>
<head>
<script>
window.onload = function(event) {
document.getElementById('fileInput').addEventListener('change', handleFileSelect, false);
}
function handleFileSelect(event) {
var fileReader = new FileReader();
fileReader.onload = function(event) {
console.log(event.target.result);
}
var file = event.target.files[0];
fileReader.readAsText(file);
}
</script>
</head>
<body>
<input type="file" id="fileInput">
</body>
</html>