vue3+element plus upload组件回显图片base64的实现

vue3+element plus upload组件回显图片base64的实现

1 背景

最近遇到个需求,需要基于vue3+element plus的upload组件回显图片,通常我们是通过后端直接返回的url来回显就行了,而且在element plus也给出了示例:

image-20240123171340359

不过,o_O,我们下面将要以base64的形式来填充,其实也很简单,自己构造一个这样的对象就行了,url里面放我们base64字符串,然后其他的造成即可,下面请看我的实现样例:

2 实现

在这里插入图片描述

  • 构造一个用base64字符串填充的文件列表
let fileList = ref([
    {
        // 这是文件名字
    	name: '文件名1', 
        // 这里是我自己定义的自定义属性,可有可无
    	fileId: '1', 
        // 这里是base64字符串,咳咳我们后端返回的格式有点特殊,所以我又给转换了一下,成为真正的base64字符串
    	url: 'data:image/png;base64,' + new BaseTool().arrayBufferToBase64(temp?.arrayBuffer)
	}
])
  • 将图片列表渲染到组件里
			<el-upload
                action="#"
                list-type="picture-card"
                v-model:file-list="fileList"
                :auto-upload="false"
              >
                <el-icon><Plus /></el-icon>
                <template #file="{ file }">
                  <div>
                    <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
                    <span class="el-upload-list__item-actions">
                      <span
                        class="el-upload-list__item-preview"
                        @click="handlePictureCardPreview(file)"
                      >
                        <el-icon><zoom-in /></el-icon>
                      </span>
                      <span
                        v-if="!disabled"
                        class="el-upload-list__item-delete"
                        @click="handleRemove(file, item.dataValue)"
                      >
                        <el-icon><Delete /></el-icon>
                      </span>
                    </span>
                  </div>
                </template>
              </el-upload>

重点就是替换上面fileList就可。

3 小结

ok啦。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值