vue中用H5实现文件上传的方法实例代码


Posted in Javascript onMay 27, 2017

整理文档,搜刮出一个vue中用H5实现文件上传的方法实例代码,稍微整理精简一下做下分享。

1.图片上传

<img v-if="personInfo.photoUrl" :src="headPreFix + personInfo.photoUrl" style="height:126px;max-width:133px;margin: 25px 0;">
 <img v-else src="../../assets/default.png" style="height:126px;max-width:133px;margin: 25px 0;">
<form id="form1" enctype="multipart/form-data" method="post" action="">
        <div style="height:0px; overflow:hidden; position:absolute;">
         <input type="file" tabIndex="-1" accept="image/jpeg,image/x-png,image/gif" name="file" style="padding-left:10px" id="fileToUpload" @change="fileSelected()"/>
        </div>
        <button type="button" class="btn btn-default btn-xs" onclick="document.getElementById('fileToUpload').click()">上传</button>
        <button type="button" class="btn btn-default btn-xs" @click="deleteImg">删除</button>
       </form>
// 上传图片
  'fileSelected': function () {
   var that = this
   let files = document.getElementById('fileToUpload').files
   if (files && files.length) {
    var fd = new FormData()
    fd.append('file', files[0])
    var reader = new window.FileReader()
    // 图片大小 100KB
    var fileSize = 100 * 1024
    reader.readAsDataURL(files[0])
    reader.onload = function (e) {
     if (e.target.result.length > fileSize) {
      that.$dispatch('show-alert', 'msg_1016')
      document.getElementById('fileToUpload').value = ''
     } else {
      var xhr = new XMLHttpRequest()
      xhr.addEventListener('load', that.uploadComplete, false)
      xhr.open('POST', that.$root.appBaseUrl + 'fileUpload/singleFileUpload')
      xhr.send(fd)
     }
    }
   }
  },
  // 上传成功
  'uploadComplete': function (evt) {
   this.personInfo.photoUrl = (evt.target.responseText).replace('\\', '/')
   document.getElementById('fileToUpload').value = ''
  },
  // 删除图片
  'deleteImg': function () {
   this.personInfo.photoUrl = ''
  },
computed: {
  headPreFix: function () {
   let params = window.localdicts.dicts.ph_params.systemParam
   if (params.storageType === 1) {
    return params.storageUrl
   }
   return this.$root.appBaseUrl
  }
}

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

Javascript 相关文章推荐
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
清除div下面的所有标签的方法
Feb 17 Javascript
JavaScript排序算法之希尔排序的2个实例
Apr 04 Javascript
js简单实现Select互换数据的方法
Aug 17 Javascript
JavaScript知识点整理
Dec 09 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
vue 自定义 select内置组件
Apr 10 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
微信小程序tab左右滑动切换功能的实现代码
Feb 08 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 #Javascript
详解如何使用webpack打包Vue工程
May 27 #Javascript
Jquery中attr与prop的区别详解
May 27 #jQuery
angular使用post、get向后台传参的问题实例
May 27 #Javascript
AngularJS中使用ngModal模态框实例
May 27 #Javascript
angularJS模态框$modal实例代码
May 27 #Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
May 27 #Javascript
You might like
php foreach、while性能比较
2009/10/15 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP版QQ互联OAuth示例代码分享
2015/07/05 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
用Python抢过年的火车票附源码
2015/12/07 Python
深入浅析python继承问题
2016/05/29 Python
Python生成密码库功能示例
2017/05/23 Python
Python元字符的用法实例解析
2018/01/17 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
django fernet fields字段加密实践详解
2019/08/12 Python
python中Lambda表达式详解
2019/11/20 Python
Python如何合并多个字典或映射
2020/07/24 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
简述数据库的设计过程
2015/06/22 面试题
什么是Smart Navigation?
2016/07/03 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
医学院毕业生自荐信范文
2014/03/06 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2016中秋节广告语
2016/01/28 职场文书