javascript - 上传前预览图像 - 这行代码检查什么?

标签 javascript

所以我正在寻找一种在上传图像之前预览图像的方法,我发现了这种方法:

<script type="text/javascript">
        function readURL(input) {
            if (input.files && input.files[0]) {
                var reader = new FileReader();

                reader.onload = function (e) {
                    $('#blah').attr('src', e.target.result);
                }

                reader.readAsDataURL(input.files[0]);
            }
        }
    </script>

<body>
    <form id="form1" runat="server">
        <input type='file' onchange="readURL(this);" />
        <img id="blah" src="#" alt="your image" />
    </form>
</body>

效果很好,但有一些我不明白的地方。

if(input.files && input.files[0]) 到底做什么?

我知道 input.files 返回一个 FileList 对象,该对象允许您访问使用 <input type='file'> 选择的文件列表。元素并且 input.files[0] 返回节点文件列表中的第一个文件,但我似乎无法理解该行代码正在检查的内容...

谢谢!

最佳答案

if(input.files && input.files[0])

使用 AND 检查输入对象是否包含名为 files 的元素,并检查 files 对象是否是一个至少包含一个元素的数组

关于javascript - 上传前预览图像 - 这行代码检查什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615367/

相关文章:

javascript - 如何将值从 MVC ActionResult 传递到 AJAX 成功回调函数?

javascript - 使用ajax重定向后php session 丢失

JavaScript 表单验证查询

javascript - 如何在 JavaScript 中使用数组中的 pop() 选项

javascript - 如何遍历json结构获取任何数字Id

javascript - 将弹出窗口更改为选项卡窗口

javascript - 如何计算当前分钟剩余的秒数

java - 如何通过cordova exec在java中开发gps插件

javascript - 工厂 AngularJS 中的访问 Controller 作用域函数

javascript - 鸡和蛋