详解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学习笔记 操作jQuery对象 CSS处理
Sep 19 Javascript
javascript使用location.search的示例
Nov 05 Javascript
js控制表单不能输入空格的小例子
Nov 20 Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
Dec 28 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
javascript填充默认头像方法
Feb 22 Javascript
vue实现axios图片上传功能
Aug 20 Javascript
js 解析 JSON 数据简单示例
Apr 21 Javascript
如何阻止移动端浏览器点击图片浏览
Aug 29 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
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php 缓存函数代码
2008/08/27 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
window.open()弹出居中的窗口
2007/02/01 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
js实现随机8位验证码
2020/07/24 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
python实现批量转换图片为黑白
2020/06/16 Python
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
预备党员党校学习自我评价分享
2013/11/12 职场文书
大专生自荐书范文
2014/06/22 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python