H5 js的FileReader接口即时预览本地图片

 
 

Demo

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>图片预览</title>
</head>

<body>
    <input type="file">
    <img src="">
</body>

</html>
<script>
    var input = document.querySelector('input');
    input.onchange = function () {
        //1. 拿到文件 File对象 ,files还是文件列表list,files[0]才是要的对象
        var file = this.files[0];
        //2. FileReader是接口,创建一个fileReader的对象就可以拿到原型中的方法(有四种)
        var base64 = new FileReader();
        //3. 开始读取文件,读取的是base64的值
        base64.readAsDataURL(file);
        //4. 因为读取文件需要时间,所以要在回调函数中使用读取的结果
        base64.onload= function(){
            document.querySelector('img').src = base64.result;
        };
    }
</script>

此方法的图片不会通过服务器即可预览,可以减轻服务器压力.

FileReader接口事件的用法有四种,其中前三种是读取文件,最后一种是中断读取.

方法名 参数 描述
readAsBinaryString file 将文件读取为二进制编码
readAsText file,[encoding] 将文件读取为文本
readAsDataURL file 将文件读取为DataURL
abort (none) 终端读取操作
FileReader不会返回读取结果,结果保存在result中,所以要在回调中读取结果(读取失败为null).详细看代码注释.


猜你喜欢

转载自blog.csdn.net/qq_40259641/article/details/80457273