图片预览功能的实现

图片预览功能

图片预览功能在日常中也很常见就是在提交图片时,可以在选中文件之后在页面中显示其内容的功能。
那么怎么实现呢。
目前我所知有两种方式

  1. 文件读写
    我们可以利用文件读写来将上传的文件内容获取到再渲染到页面中。
document.getElementById("btn").onclick = function() {

        var reader = new FileReader();
        reader.onload = function(e) {
            console.log(e.target);
            document.getElementsByTagName("img")[0].src = e.target.result;
        }
        reader.readAsDataURL(document.getElementById("file").files[0]);
    }

效果如下
在这里插入图片描述
在这里插入图片描述
我们仔细看控制台输出就可以知道,这种方法是将图片转换成base64格式再进行输出,但是使用这种方法网页的大小会变大,也就是说转换成base64之后图片比之前的数据量要要大不少,并且不能读取太大的文件。
2. URL.createObjectURL
这种方式也可以实现图片的预览功能

document.getElementById("btn").onclick = function() {
document.getElementsByTagName("img")[0].src = URL.createObjectURL(document.getElementById("file").files[0]);
    }

效果如下
在这里插入图片描述
在这里插入图片描述
我们也可以从控制台看出,URL.createObjectURL是将图片转换成blob的格式。
什么是blob呢,根据MDN的解释,blob对象是表示一个不可变、原始数据的类文件对象,它的数据可以按文本或二进制的格式进行读取。
以上便是图片预览功能的两种实现方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端御书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值