详解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 相关文章推荐
类之Prototype.js学习
Jun 13 Javascript
查看源码的工具 学习jQuery源码不错的工具
Dec 26 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
jQuery与JS加载事件用法分析
Sep 04 Javascript
JSON 必知必会 观后记
Oct 27 Javascript
微信小程序模板之分页滑动栏
Feb 10 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 Javascript
JS字符串常用操作方法实例小结
Jun 24 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
Apr 25 Javascript
layui实现显示数据表格、搜索和修改功能示例
Jun 03 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
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
node.js require() 源码解读
2015/12/13 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
Python中类型检查的详细介绍
2017/02/13 Python
Python代码实现KNN算法
2017/12/20 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
django表单的Widgets使用详解
2019/07/22 Python
python打包成so文件过程解析
2019/09/28 Python
python实现指定ip端口扫描方式
2019/12/17 Python
Python os模块常用方法和属性总结
2020/02/20 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
美丽家庭事迹材料
2014/05/03 职场文书
森林防火标语
2014/06/23 职场文书
干货:如何写好观后感 !
2019/05/21 职场文书
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL