vant3之van-uploader 图片回显、放大预览无效问题的解决办法

3 篇文章 0 订阅
3 篇文章 0 订阅

我写技术文章没那么多废话,直接上代码:
1.在html里:

   <van-field name="Files" label="照片" >
       <template #input>
          <van-uploader :max-count="1" accept='.jpg,.jpeg,.png'  v-model="data.photoUrl" :before-read="beforeRead"  :after-read="afterRead"  @delete="deleteFiles"/>
      </template>
  </van-field>

2.在ts里:
在这里插入图片描述
观察上传时,van-uploader返回的file,上面这种结构是能够正常回显的,那么我们要做的就是构建这种结构:

// 将base64转换为blob转为file
const dataURLtoBlobtoFile = (dataurl:any) =>{
    var arr = dataurl.split(',')
    var mime = arr[0].match(/:(.*?);/)[1]
    var bstr = atob(arr[1])
    var n = bstr.length
    var u8arr = new Uint8Array(n)
    while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
    }
    // return new Blob([u8arr], { type: mime })
    let theBlob:any = new Blob([u8arr], { type: mime });
    theBlob.lastModifiedDate = new Date()
    theBlob.name = "预览图片"
    return theBlob;
}
//调用获取图片接口
const showPhoto = () =>{
	getPhoto().then((res: any) => {
         if (res.code === '0') {
             if(res.data) {
                 //这是接口获得base64
                 data.photoUrl = [{ content:res.data,file:dataURLtoBlobtoFile(res.data)}]
             }
         } else Toast.fail(res.messege)
     })
}

此种方法就不需要另外引用那个ImagePreview ,直接就能实现回显

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值