Element UI 上传组件上传多图

简介: 利用Element UI上传组件实现图片上传删除并且写入数据库

今天再写一个前端上传页面,具体思路就是用户可以上传多张图片,上传之后就存到七牛云然后写入数据库,如果用户发现某一张上传错误,可以删除,然后对于的数据库信息也要删除。


因为我是完全小白自学入门,目前学习了2个月,后端用THINKPHP写的接口,已经搞定了,前端这个上传搞了一天,终于捣鼓明白了,写下来留作纪念!


首先引入Element UI 的上传组件:

<el-form-itemlabel="上传:"><el-uploadaction="http://****/api/v1/uploadimg"//后端接受地址:headers="head":multiple="true"name="imglist"list-type="picture-card"accept="image/png, image/jpeg":limit="20":on-success="onSuccess":on-remove="onRemove"><iclass="el-icon-plus"></i></el-upload><el-dialog:visible.sync="dialogVisible"><imgwidth="50%":src="dialogImageUrl"alt=""></el-dialog></el-form-item>

这个具体流程就是,用户选择图片之后直接上传到的七牛云的存储中,然后写入数据库。onSucess 就是用来接收成功上传返回的图片信息。


Vue中Data中的数据定义如下:

export default {
    data() {
      return {
        head: {
          //这个地方是获取token,请求地址需要携带token访问
          'Authorization': this.$store.state.user
        },
        dialogImageUrl: '',
        dialogVisible: false,
        imgList: [],
      }
    }
  }

Vue中method方法的定义如何:

methods: {
      // 删除文件
      async onRemove(file, fileList) {
        // 查找与ID一致的图片索引
        let index = this.imgList.findIndex(item=>{
            return item.id == file.response.data.id
        })
        // 根据索引删除图片
        let datas = {
          id: file.response.data.id,
          user_id: file.response.data.user_id
        }
        //这就是一个请求地址
        const res = await deleteImg(datas)
        if(res.status !== 200) return this.$message.error('删除失败')
        // 根据索引珊瑚数据
        this.imgList.splice(index,1)
        this.$message.success('删除成功')
      },
      // 上传成功
      onSuccess(response){
        this.imgList.push(response.data)
      }
    }

这样就可以实现图片的上传与删除,然后对于的修改数据库里面的信息,修改之后前端也可以获取最新的图片数量。

目录
相关文章
|
17天前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
33 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
2月前
|
JavaScript
基于Element UI或Element Plus实现具有倒计时的Message消息提示
本文介绍了如何在Element UI或Element Plus框架中实现具有倒计时功能的消息提示组件,支持多次点击生成多个独立倒计时的消息提示,并提供了详细的实现代码和使用示例。
218 1
基于Element UI或Element Plus实现具有倒计时的Message消息提示
|
2月前
|
存储 搜索推荐 Java
探索安卓开发中的自定义视图:打造个性化UI组件Java中的异常处理:从基础到高级
【8月更文挑战第29天】在安卓应用的海洋中,一个独特的用户界面(UI)能让应用脱颖而出。自定义视图是实现这一目标的强大工具。本文将通过一个简单的自定义计数器视图示例,展示如何从零开始创建一个具有独特风格和功能的安卓UI组件,并讨论在此过程中涉及的设计原则、性能优化和兼容性问题。准备好让你的应用与众不同了吗?让我们开始吧!
|
2月前
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
2月前
|
JavaScript UED
基于Vue2.0仿Element UI的el-tooltip实现一个气泡框组件,支持多数据类型的显示和内容为空时不显示气泡框
该文章介绍了如何基于Vue2.0仿照Element UI的el-tooltip组件实现一个自定义的气泡框组件,该组件能够根据内容是否为空智能显示或隐藏,支持多种数据类型的显示。
78 0
基于Vue2.0仿Element UI的el-tooltip实现一个气泡框组件,支持多数据类型的显示和内容为空时不显示气泡框
|
2月前
|
开发者 C# Android开发
明白吗?Xamarin与Native的终极对决:究竟哪种开发方式更适合您的项目需求,让我们一探究竟!
【8月更文挑战第31天】随着移动应用开发的普及,开发者面临多种技术选择。本文对比了跨平台解决方案Xamarin与原生开发方式的优势与劣势。Xamarin使用C#进行跨平台开发,代码复用率高,可大幅降低开发成本;但因基于抽象层,可能影响性能。原生开发则充分利用平台特性,提供最佳用户体验,但需维护多套代码库,增加工作量。开发者应根据项目需求、团队技能和预算综合考量,选择最适合的开发方式。
68 0
|
2月前
|
JavaScript 前端开发 开发者
决战前端之巅!Element UI与Vuetify谁才是Vue.js组件界的霸主?一场关于颜值与实力的较量!
【8月更文挑战第30天】本文对比了两款热门的Vue.js组件库——Element UI与Vuetify。Element UI由饿了么团队打造,提供多种高质量UI组件,设计简洁大方。Vuetify基于Material Design规范,支持Vue.js 2.0及3.0版本,具备前瞻性。两者均涵盖表单、导航、数据展示等组件,Element UI配置选项丰富,而Vuetify则提供了更深层的样式定制功能。开发者可根据项目需求及个人偏好选择合适的组件库。
101 0
|
2月前
|
JavaScript 开发者 UED
Vue.js组件库大对决:Element UI与Vuetify,开发者的罗密欧与朱丽叶!
【8月更文挑战第30天】Element UI和Vuetify是Vue.js开发中的热门组件库,前者简洁高效,后者遵循Material Design,国际化程度高。两者均提供丰富的组件支持,但Vuetify组件更多样,设计更灵活;Element UI在性能和中文支持上更优。文档方面,Element UI更直观易懂,而Vuetify配置灵活但学习成本稍高。选择时需综合考虑项目需求、团队背景及设计风格,以达到最佳开发效果。
97 0
|
2月前
|
数据可视化 数据挖掘 持续交付
Axure Web端元件库:从Quick UI到500+组件的飞跃
在快速变化的数字世界中,产品设计不仅仅是功能的堆砌,更是用户体验的精心雕琢。原型设计作为产品开发过程中的关键环节,其重要性不言而喻。Axure,作为业界领先的原型设计工具,凭借其强大的交互设计和丰富的功能,赢得了全球设计师和开发者的信赖。而Axure Web端元件库,则是这一平台上的一颗璀璨明珠,它以超过500个精心设计的组件为基础,为设计师们打开了一扇通往高效、高质量原型设计的大门。
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
下一篇
无影云桌面