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 相关文章推荐
JavaScript DOM学习第八章 表单错误提示
Feb 19 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
一个超简单的jQuery回调函数例子(分享)
Aug 08 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
vue.js中created方法作用
Mar 30 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
Aug 27 jQuery
vue.js实现图书管理功能
Sep 24 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
Nov 01 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 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
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
php define的第二个参数使用方法
2013/11/04 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
JavaScript confirm选择判断
2008/10/18 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
详解React-Todos入门例子
2016/11/08 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
老海军美国官网:Old Navy
2016/09/05 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
网络管理员岗位职责
2014/03/17 职场文书
课程设计的心得体会
2014/09/03 职场文书
婚宴新郎致辞
2015/07/28 职场文书
药房管理制度范本
2015/08/06 职场文书
学校团代会开幕词
2016/03/04 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android