vue项目预览图片

1.图片为本地上传的预览:

<input type="file" ref="file"/>
<img :src="imgUrl"/>

 let fr = new FileReader()
 fr.readAsArrayBuffer(this.$refs.file.files[0])
 fr.addEventListener("loadend", (e) => {
    let buffer = e.target.result
    const bufferUrl = btoa(new Uint8Array(buffer).reduce((data, byte) => data + String.fromCharCode(byte), ''))
    const imgUrl = 'data:image/png;base64,' + bufferUrl
    that.imgUrl = imgUrl
  }, false)

2.服务器传递过来的数据流,原理是一样的,FileReader读取返回的blob,注意接口responseType:'blob'

<img :src="imgUrl"/>

api(param).then(res => { // 接口
     let fr = new FileReader();
     fr.readAsArrayBuffer(res.data);
     fr.addEventListener("loadend", (e) => {
          let buffer = e.target.result;
          const bufferUrl = btoa(new Uint8Array(buffer).reduce((data, byte) => data + String.fromCharCode(byte), ''));
          const imgUrl = 'data:image/png;base64,' + bufferUrl;
          that.imgUrl = imgUrl;
      }, false);
})

     3.服务器直接返回图片的临时地址,直接给imgUrl赋值即可。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值