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调试说明
Jun 07 Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 Javascript
js有序数组的连接问题
Oct 01 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
Oct 28 Javascript
easyui form validate总是返回false的原因及解决方法
Nov 07 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
详解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
yii2实现根据时间搜索的方法
2016/05/25 PHP
静态html文件执行php语句的方法(推荐)
2016/11/21 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
python使用scrapy解析js示例
2014/01/23 Python
python生成日历实例解析
2014/08/21 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
Django缓存Cache使用详解
2020/11/30 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
eBay加拿大站:eBay.ca
2019/06/20 全球购物
电气专业推荐信范文
2013/11/18 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
优秀英文求职信范文
2015/03/19 职场文书
面试通知邮件
2015/04/20 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
使用javascript解析二维码的三种方式
2021/11/11 Javascript
mysql创建存储过程及函数详解
2021/12/04 MySQL