尝试通过HTML FileReader从文件中导入一些字符串对我来说开始变得痛苦。通过测试,主要功能内的警报显示事件完成后消失的内容。 请赐教。
<input type="file" id="Open" />
<script type="text/javascript">
function readSingleFile(evt) {
var f = evt.target.files[0];
var r = new FileReader();
var contents;
if (f) {
r.onloadend = function(evt) {
var contents = evt.target.result.substr();
// this alert show string content
alert(contents);
}
r.readAsText(f);
}
// there's no string content - (undefined)
alert(contents);
}
document.getElementById('Open').addEventListener('change', readSingleFile, false);
</script>
答案 0 :(得分:1)
FileReader
对象允许Web应用程序异步读取文件的内容。
调用r.readAsText(f)后无法立即获取文件内容
您应该在onloadend
evt
函数
就像这样
<script type="text/javascript">
var contents;
function readSingleFile(evt) {
var f = evt.target.files[0];
var r = new FileReader();
if (f) {
r.onloadend = function(evt) {
contents = evt.target.result.substr();
// this alert show string content
alert(contents);
//code for the contents
}
r.readAsText(f);
}
// there's no string content - (undefined)
//alert(contents);
}
document.getElementById('Open').addEventListener('change', readSingleFile, false);
</script>