详解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 相关文章推荐
js jq 单击和双击区分示例介绍
Nov 05 Javascript
js中split函数的使用方法说明
Dec 26 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
Javascript中常见的逻辑题和解决方法
Sep 17 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
vue异步加载高德地图的实现
Jun 19 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
JS实现自定义弹窗功能
Aug 08 Javascript
微信小程序用户信息encryptedData详解
Aug 24 Javascript
jQuery实现视频展示效果
May 30 jQuery
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中的闭包和匿名函数
2017/12/25 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python列表append和+的区别浅析
2015/02/02 Python
快速排序的算法思想及Python版快速排序的实现示例
2016/07/02 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
python try 异常处理(史上最全)
2019/03/07 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
keras实现多种分类网络的方式
2020/06/11 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
妇科医生自荐信
2013/11/05 职场文书
商业房地产广告语
2014/03/13 职场文书
结对共建工作方案
2014/06/02 职场文书
大班下学期个人总结
2015/02/13 职场文书
创业计划书之熟食店
2019/10/16 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
一文搞懂Java中的注解和反射
2022/06/21 Java/Android