博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 本地预览多图上传
阅读量:6230 次
发布时间:2019-06-21

本文共 1211 字,大约阅读时间需要 4 分钟。

此组件的开发是为了后台管理的多图上传,并实现本地预览修改,当用户确认后开始整体提交,此组件使用了我的另一篇文章所用到的组件

所遇到的问题?

选择多个文件后无法实现本地预览?

  • 使用es6的for of 对获取到的文件对象数组 filelist进行迭代循环
  • 使用 FileReader 对象将选择的图片文件转换成可以前端展示的 base 64数据
  • 在新数组被将图片数据push进去就可以实现本地多图预览了
fileChange(files) { // files 为接收到的文件对象      const _this = this // 保存this       for (let i = 0; i < files.length; i++) { //对文件数组对象进行迭代循环        const reader = new FileReader()        this.imgfiles.push(files[i])        reader.readAsDataURL(files[i])        reader.onloadend = function() {          console.log(this.result)          _this.imgs.push(this.result)        }      }

对不要的图片进行删除?

  • 获取图片数组下标,使用数组 slice方法进行删除
    获取下标:

v-for 的i就代表了数组的下标,因为我们不仅需要删除图片数组,还需要删除文件数组,删除操作:

del(i) {      this.imgfiles.splice(i, 1)      this.imgs.splice(i, 1)      this.imgsChange()    },

将获取到的文件对象向父组件进行广播

imgsChange() {      this.$emit('imgsChange', this.imgfiles) //广播事件名:imgsChange,参数  this.imgfiles    }

下面是我封装的组件的完整代码,没有进行更多的操作,仅仅是把选择的图片可以本地预览,删除,增加

转载于:https://www.cnblogs.com/yuanchenchun/p/9505125.html

你可能感兴趣的文章
D1net阅闻:Google开源iOS软件测试工具EarlGrey
查看>>
《Drupal实战》——第2章 为图书添加各种字段 2.1 下载并安装常用模块
查看>>
4年后的网络还不能完全满足人类对数字化未来的需求
查看>>
云服务器的价值与IT部署可行性分析
查看>>
阿里云频频牵手高校 专注大数据人才培养
查看>>
微软将向欧盟做出必要让步 力促收购LinkedIn交易获批
查看>>
微软想要打造智慧城市 现在只是从汽车先下手
查看>>
大数据的寒冬已至,谁将倒下,谁成巨人?
查看>>
美日德将加强物联网领域合作,欲主宰该市场
查看>>
全球能源专家:2050年前全部使用可再生能源是可行的
查看>>
大数据规划布局“未来生产要素”
查看>>
使用云计算灾难恢复计划制定勒索软件恢复策略
查看>>
运营商NFV MANO梦想照进现实
查看>>
2015中国APT研究报告:中国是APT攻击的主要受害国
查看>>
Chatsworth公司推出了一款高科技数据中心柜锁
查看>>
微软豪购Linkedin 补移动社交船票?
查看>>
苹果iMessage上线Business Chat功能
查看>>
戴尔EMC、日立数据系统和NetApp现已出货博科第六代光纤通道方案
查看>>
南航率先加入综合交通出行大数据开放云平台
查看>>
英特尔应当收购联发科原因:成功进入移动芯片市场
查看>>