vue+element-ui实现编辑图片预览

1,下载图片预览返回的是二进制的字节流,如何与img标签中的src属性绑定,查看图片呢?

 2.接口中加上响应类型:       responseType: 'blob'

export function downloadFile(fileId) {
    return service.request({
        method: 'get',
        url: `/file/download/${fileId}`,
        responseType: 'blob'
    })
}

3.URL.createObjectURL(下载接口中返回的二进制流)

        async getDeta(id){
          console.log(id)
            this.modDialogVisible  = true
            const res = await getBannerDeta({bannerId:id})
            this.deta = res.data
            this.modInfo.attachment.attachId = this.deta.attachment.attachId
            this.modInfo.bannerId = id
            this.modInfo.bannerState = res.data.bannerState
            this.modInfo.bannerTitle = res.data.bannerTitle
            var fileId= res.data.attachment.url
            const res1 = await downloadFile(fileId)
            this.modurl  = URL.createObjectURL(res1);
        },

4.src绑定

<img v-if="modurl" :src="modurl" class="avatar">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,关于您的问题,可以通过以下步骤实现图片预览: 1. 首先,需要安装并引入 element-ui 组件库和 vue-preview 插件。 2. 在需要实现图片预览的页面中,使用 <el-upload> 组件上传图片,并设置相关属性,如 action、before-upload、list-type 等。 3. 在 <el-upload> 组件的 slot 属性中添加自定义内容,这里可以使用 vue-preview 插件来实现图片预览。具体实现方法如下: ``` <el-upload action="your_upload_url" :before-upload="checkImage" list-type="picture-card"> <i slot="default" class="el-icon-plus"></i> <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div> // 添加自定义内容 <vue-preview :slides="slides"></vue-preview> </el-upload> ``` 4. 在 data 中定义 slides 数组,并在 checkImage 方法中动态生成 slides 数组的内容,用于传递给 vue-preview 组件进行图片预览。具体实现方法如下: ``` data() { return { slides: [] } }, methods: { checkImage(file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'; const isLt2M = file.size / 1024 / 1024 < 2; if (!isJPG || !isLt2M) { this.$message.error('上传图片只能是 JPG/PNG 格式,且不超过 2MB'); return false; } // 生成 slides 数组,并使用 vue-preview 进行图片预览 const reader = new FileReader(); reader.readAsDataURL(file.raw); reader.onload = () => { this.slides.push({ src: reader.result }); this.$nextTick(() => { this.$refs.preview.open(); }); }; } } ``` 以上就是使用 vue 结合 element-ui 实现图片预览的方法了,希望能对您有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值