原生 js 实现上传图片展示缩略图的两种方式

方式1 reader.readAsDataURL()

方式2 window.url()

具体实现 

 <input type="file" onchange="chooseImg(event)">
 <div class="imgBox"></div>
function chooseImg(e) {
        // single upload
        let filesList = e.target.files[0]; 
        let imgBox = document.getElementsByClassName("imgBox")[0]
        let ulDom = document.createElement("ul");
        ulDom.setAttribute("class","imgUl")
        let img = document.createElement("img")
        // 方式1 
        let reader = new FileReader();
        reader.readAsDataURL(filesList);
        reader.onload = function(e){
           img.src = e.target.result; // base64 缩略图
        }
        ulDom.appendChild(img);  
        imgBox.appendChild(ulDom);
}

 

<input type="file" onchange="chooseImgTwo(event)">
<div class="imgBoxTwo"></div>

 

function chooseImgTwo(e) {
        let filesList = e.target.files[0];   
        let imgBoxTwo = document.getElementsByClassName("imgBoxTwo")[0];
        let ulDom = document.createElement("ul");
        ulDom.setAttribute("class","imgUl");
        let img = document.createElement("img");
        window.URL = window.URL || window.webkit.URL;
        img.src=  window.URL.createObjectURL(filesList);
        img.onload = function(e){
            window.URL.revokeObjectURL(filesList) 
        }
        ulDom.appendChild(img); 
        imgBoxTwo.appendChild(ulDom);
}

实现效果 

 

 everyday is sunny day alias 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值