全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

vue上传图片组件编写代码

本文实例教大家如何编写一个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); 
 } 

最终效果如下:

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

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


# vue上传图片组件  # vue上传图片  # vue上传组件  # vue+element实现图片上传及裁剪功能  # vue.js 实现图片本地预览 裁剪 压缩 上传功能  # cropper js基于vue的图片裁剪上传功能的实现代码  # vue实现移动端图片裁剪上传功能  # Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解  # vue中使用elementUI组件手动上传图片功能  # vue+elementUi图片上传组件使用详解  # 基于vue-upload-component封装一个图片上传组件的示例  # vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理  # require.js+vue开发微信上传图片组件  # vue 图片裁剪上传组件的实现  # 上传图片  # 拖到  # 大家多多  # 以供  # 清空  # 有一个  # 判断是否  # 拖拽  # 上传  # js  # files  # el  # click  # getElementById  # document  # target  # length  # br  # fileAdd  # style 


相关文章: 公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  如何在新浪SAE免费搭建个人博客?  如何快速搭建支持数据库操作的智能建站平台?  如何在阿里云部署织梦网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何制作一个表白网站视频,关于勇敢表白的小标题?  建站主机数据库如何配置才能提升网站性能?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  建站之星如何助力企业快速打造五合一网站?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  广州营销型建站服务商推荐:技术优势与SEO优化解析  实惠建站价格推荐:2025年高性价比自助建站套餐解析  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  ,在苏州找工作,上哪个网站比较好?  如何在阿里云服务器自主搭建网站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何通过万网虚拟主机快速搭建网站?  临沂网站制作公司有哪些,临沂第四中学官网?  建站之星下载版如何获取与安装?  湖北网站制作公司有哪些,湖北清能集团官网?  ,网页ppt怎么弄成自己的ppt?  公司网站设计制作厂家,怎么创建自己的一个网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何高效完成独享虚拟主机建站?  建站之星如何快速更换网站模板?  如何用PHP工具快速搭建高效网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在云虚拟主机上快速搭建个人网站?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  如何自定义建站之星网站的导航菜单样式?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  建站之星免费模板:自助建站系统与智能响应式一键生成  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  网站制作话术技巧,网站推广做的好怎么话术?  建站之星价格显示格式升级,你的预算足够吗?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  如何用已有域名快速搭建网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何在IIS中新建站点并配置端口与物理路径?  清除minerd进程的简单方法  定制建站价位费用解析与套餐推荐全攻略  网站制作公司,橙子建站是合法的吗?  如何在万网ECS上快速搭建专属网站?  如何快速查询域名建站关键信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。