vue上传图片组件编写代码


Posted in Javascript onJuly 26, 2017

本文实例教大家如何编写一个vue上传图片组件,具体如下

1.首先得有一个[type=file]文件标签并且隐藏,changge事件来获取图片:

<input @change="fileChange($event)" type="file" id="upload_file" multiple style="display: none"/>

2.触发隐藏的文件标签:(通过原生的click来触发)

document.getElementById('upload_file').click()

3.获取file文件里面的值方法:fileChange($event)

fileChange(el){ 
  if (!el.target.files[0].size) return;//判断是否有文件数量 
  this.fileList(el.target.files);//获取files文件组传入处理 
  el.target.value = ''//清空val值,以便可以重复添加一张图片 
 }

4.处理files文件组

获取传入单个图片文件

fileList(files){ 
   for (let i = 0; i < files.length; i++) { 
    this.fileAdd(files[i]); 
   } 
  }

处理获取到的图片文件,统计文件大小,转图片为base64以供显示

fileAdd(file){ 
   this.size = this.size + file.size;//总大小 
   let reader = new FileReader(); 
   reader.vue = this; 
   reader.readAsDataURL(file); 
   reader.onload = function () { 
    file.src = this.result; 
    this.vue.imgList.push({ 
     file 
    }); 
   } 
  },

5.文件大小换算

bytesToSize(bytes){ 
  if (bytes === 0) return '0 B'; 
  let k = 1000, // or 1024 
   sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
   i = Math.floor(Math.log(bytes) / Math.log(k)); 
  return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i]; 
 },

6.拖拽上传

<div class="upload_warp_right" @drop="drop($event)" @dragenter="dragenter($event)" @dragover="dragover($event)"> 
   或者将文件拖到此处 
</div>
dragenter(el){ 
  el.stopPropagation(); 
  el.preventDefault(); 
 }, 
 dragover(el){ 
  el.stopPropagation(); 
  el.preventDefault(); 
 }, 
 drop(el){ 
  el.stopPropagation(); 
  el.preventDefault(); 
  this.fileList(el.dataTransfer.files); 
 }

最终效果如下:

vue上传图片组件编写代码

点击打开源码 https://github.com/317482454/vue_upload

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript基本对象
Jan 11 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
js实现的简单radio背景颜色选择器代码
Aug 18 Javascript
Angularjs 实现移动端在线测评效果(推荐)
Apr 05 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
解析Vue.js中的组件
Feb 02 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
Vue运用transition实现过渡动画
May 06 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
Nov 14 Javascript
Vue数据双向绑定底层实现原理
Nov 22 Javascript
浅谈vue.watch的触发条件是什么
Nov 07 Javascript
JS前端可视化canvas动画原理及其推导实现
Aug 05 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 #Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 #Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 #Javascript
JavaScript利用fetch实现异步请求的方法实例
Jul 26 #Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 #Javascript
WdatePicker.js时间日期插件的使用方法
Jul 26 #Javascript
关于Stream和Buffer的相互转换详解
Jul 26 #Javascript
You might like
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
vue组件中iview的modal组件爬坑问题之modal的显示与否应该是使用v-show
2019/04/12 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
安装Python的教程-Windows
2017/07/22 Python
pandas的qcut()方法详解
2019/07/06 Python
python实现网站微信登录的示例代码
2019/09/18 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
Python函数递归调用实现原理实例解析
2020/08/11 Python
Python xlrd/xlwt 创建excel文件及常用操作
2020/09/24 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
nohup的用法
2014/08/10 面试题
高级文秘工作总结的自我评价
2013/09/28 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
《雷雨》教学反思
2014/02/20 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python