详解vue 图片上传功能


Posted in Javascript onApril 30, 2019

这次做了vue页面的图片上传功能,不带裁剪功能的!

首先是html代码,在input框上添加change事件,如下:

<ul class="clearfix">
        <li v-if="imgs.length>0" v-for='(item ,index ) in imgs'>
          <img :src="item">
        </li>
        <li style="position:relative" v-if="imgs.length>=6 ? false : true">
          <img src="../../assets/img/addimg.png"><input class="upload" @change='add_img' type="file">
        </li>
</ul>

我这里做了图片数量的限制,最多6张。

然后是data数据,如下:

data () {
  return {
    imgs: [],
    imgData: {
      accept: 'image/gif, image/jpeg, image/png, image/jpg',
    }
  }
 }

imgs数组是放图片路径的,页面显示图片就是循环这个数组,imgData是判断图片类型的。

接下来是最重要的methods里面的方法,具体如下:

add_img(event){ 
      let reader =new FileReader();
      let img1=event.target.files[0];
      let type=img1.type;//文件的类型,判断是否是图片
      let size=img1.size;//文件的大小,判断图片的大小
      if(this.imgData.accept.indexOf(type) == -1){
        alert('请选择我们支持的图片格式!');
        return false;
      }
      if(size>3145728){
        alert('请选择3M以内的图片!');
        return false;
      }
      var uri = ''
      let form = new FormData(); 
      form.append('file',img1,img1.name);
      this.$http.post('/file/upload',form,{
        headers:{'Content-Type':'multipart/form-data'}
      }).then(response => {
        console.log(response.data)
        uri = response.data.url
        reader.readAsDataURL(img1);
        var that=this;
        reader.onloadend=function(){
          that.imgs.push(uri);
        }
      }).catch(error => {
        alert('上传图片出错!');
      })  
},

首先是获取你选择的图片,判断图片的类型和大小,然后以form表单的形式提交到后台,后台会返回给你这个图片的线上路径,你把后台返回的图片路径push到图片数组里面就可以了。

一般情况下还有删除图片的方法,就是把图片数组里的那个路径删除掉,把数据提交到后台,告诉后台删除了哪张图片就可以了。

以上所述是小编给大家介绍的vue 图片上传功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
Node.js操作mysql数据库增删改查
Mar 30 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
Javascript删除指定元素节点的方法
Jun 21 Javascript
遍历js中对象的属性和值的实例
Nov 21 Javascript
两种简单的跨域方法(jsonp、php)
Jan 02 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
May 03 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
基于vue开发的在线付费课程应用过程
Jan 25 Javascript
使用 vue.js 构建大型单页应用
Feb 10 Javascript
JS实现的tab页切换效果完整示例
Dec 18 Javascript
原生js代码能实现call和bind吗
Jul 31 Javascript
vue移动端屏幕适配详解
Apr 30 #Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 #Javascript
微信小程序时间戳转日期的详解
Apr 30 #Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 #Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 #Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 #Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 #Javascript
You might like
php mysql数据库操作分页类
2008/06/04 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
img标签中onerror用法
2009/08/13 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
前端js弹出框组件使用方法
2020/08/24 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
python函数装饰器用法实例详解
2015/06/04 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python tkinter窗口最大化的实现
2019/07/15 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Python2与Python3的区别详解
2020/02/09 Python
pytorch中的inference使用实例
2020/02/20 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
Eclipse面试题
2014/03/22 面试题
初级Java程序员面试题
2016/03/03 面试题
求职意向书
2014/04/01 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
行政上诉状范文
2015/05/23 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers