新手关于FileReader API的几个疑问

发布于 2022-09-01 21:08:11 字数 1796 浏览 10 评论 0

新手一名,目前在看《HTML5与CSS3权威指南》,看到filereader这一节的时候遇到几个问题,望大神能帮忙解惑。

  1. var file = document.getElementById("file").files[0]里的下标[0]是否第一个文件的意思,我不设置multiple属性的话它是否有必要存在?

  2. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧人九事 2022-09-08 21:08:11

1、files获得的是filelist数组所以你需要去除数组中的元素,你可以遍历数组也可以直接使用files[0]来取元素。
2、e是触发事件时的event参数,他有一些属性方法
clipboard.png
,在这个方法中没有用到可以不写

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文