Kei*_*eir 3 javascript filereader
我希望将上传文件的内容读入Javascript变量中。
该程序曾经使用file.getAsBinary进行工作,但是现在不建议使用,需要更新以使用FileReader()
表单具有文件上传选择,onsubmit在javascript中运行函数uploadDB()。
可以很好地传递变量dbname,就像上传选择中的文件名一样,我可以通过alert或console.log看到它。
接收文件文本的最终bfile变量未定义。我已经尝试了readAsText和ReadAsBinary,但是bfile是未定义的。var声明位于函数uploadDB()中,并且对于内部函数应该是全局的。如果范围是某种问题,我如何在bfile变量中得到结果。
它可能很简单,但我无法使其正常工作。有人可以建议点什么。html部分是;
<form onsubmit="uploadDB()"; method="post">
Database <input type=text name="dbName" id="dbName" size=20>
<input type=file id="metaDescFile" size=50 >
<input type=submit value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)
js脚本类似于(已删除多余的内容);
<script language="javascript" type="text/javascript">
<!--
var uploadDB = function() {
var input = document.getElementById('metaDescFile');
var fname = document.getElementById('metaDescFile').value;
var file=input.files[0];
var bfile;
reader = new FileReader();
reader.onload = function(e) { bfile = e.target.result }
reader.readAsText(file);
alert(bfile); // this shows bfile as undefined
// other stuff
}
Run Code Online (Sandbox Code Playgroud)
当在onload
回调中设置bfile时,您将无法访问该回调之外的内容,因为代码是在触发回调之前进行评估的。
尝试这个:
reader = new FileReader();
reader.onload = function(e) {
bfile = e.target.result
alert(bfile); // this shows bfile
}
reader.readAsText(file);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9668 次 |
最近记录: |