新手关于FileReader API的几个疑问
新手一名,目前在看《HTML5与CSS3权威指南》,看到filereader这一节的时候遇到几个问题,望大神能帮忙解惑。
var file = document.getElementById("file").files[0]里的下标[0]是否第一个文件的意思,我不设置multiple属性的话它是否有必要存在?
reader.onload = function(e){}里的参数e是哪里来的,为什么要传入这个参数,因为函数体里没有用到啊,希望能解释下这种用法。(本菜鸟学过一点js基础,但没接触过这种)
代码如下:
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>fileReader对象的事件先后顺序</title>
</head>
<script language=javascript>
var result = document.getElementById("result");
var input = document.getElementById("input");
if (typeof FileReader == 'undefined') {
result.innerHTML = "<p class='warn'>抱歉,你的浏览器不支持 FileReader</p>";
input.setAttribute('disabled', 'disabled');
}
function readFile() {
var file = document.getElementById("file").files[0];
var reader = new FileReader();
reader.onload = function (e) {
result.innerHTML = '<img src="' + this.result + '" alt=""/>'
alert("load");
}
reader.onprogress = function (e) {
alert("progress");
}
reader.onabort = function (e) {
alert("abort");
}
reader.onerror = function (e) {
alert("error");
}
reader.onloadstart = function (e) {
alert("loadstart");
}
reader.onloadend = function (e) {
alert("loadend");
}
reader.readAsDataURL(file);
}
</script>
<p>
<label>请选择一个图像文件:</label>
<input type="file" id="file"/>
<input type="button" value="显示图像" onclick="readFile()"/>
</p>
<div name="result" id="result">
<!-- 这里用来显示读取结果 -->
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1、files获得的是filelist数组所以你需要去除数组中的元素,你可以遍历数组也可以直接使用files[0]来取元素。
2、e是触发事件时的event参数,他有一些属性方法
,在这个方法中没有用到可以不写