vue中使用axios post上传头像/图片并实时显示到页面的方法


Posted in Javascript onSeptember 27, 2018

在前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法。

html代码:

<div id="myPhoto" v-show="personalPhoto">
 <div class="viewPhoto">
  <img src="" alt="" id="portrait"style="width: 300px;height: 300px" />
 </div>
 <div class="listBox">
  <dl>
  <dt>请上传图片</dt>
  <dd>
  <input type="file"id="saveImage" name="myphoto" >
  </dd>
  </dl>
 </div>
 <div class="save">
  <input type="button" value="保存图片" @click="imageSubmit">
 </div>
 </div>

js代码:

//实时显示该图片在页面
 great(){
  document.getElementById('saveImage').onchange = function () {
  var imgFile = this.files[0];
  var fr = new FileReader();
  fr.onload = function () {
  document.getElementById('portrait').src = fr.result;
  };
  fr.readAsDataURL(imgFile);
  }
 },

js代码部分说明:因为是在vue的methods方法中申明的函数,所以还需要在mounted 方法中使用this.great()挂载该方法。

图片上传部分的js代码:

imageSubmit(){
  let x = document.getElementById('saveImage').files[0];
  console.log(x);
  let params = new FormData() ; //创建一个form对象
  params.append('file',x,x.name); //append 向form表单添加数据
  //添加请求头 通过form添加的图片和文件的格式必须是multipart/form-data
  let config = {
  headers:{'Content-Type':'multipart/form-data'}
  };
  this.$axios.post("/user/image",params,config)
  .then(function(res){
  console.log(res);
  this.imageSave = res.data.image;
  sessionStorage.setItem('headImg',this.imageSave); //将图片保存,并能够在其他地方加载显示
  router.go(0); //刷新页面,头像改变
  }.bind(this))
  .catch(function (error) {
  console.log(error);
  })
 }
 },

最终效果图:

vue中使用axios post上传头像/图片并实时显示到页面的方法

注:在后来的开发过程中发现,上传图片在上传服务器前在页面加载可以使用

var windowURL = window.URL || window.webkitURL;

以上这篇vue中使用axios post上传头像/图片并实时显示到页面的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
div模拟滚动条效果示例代码
Oct 16 Javascript
jQuery实现渐变下拉菜单的简单方法
Mar 11 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
详解自动生成博客目录案例
Dec 09 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 jQuery
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
js尾调用优化的实现
May 23 Javascript
vue element 生成无线级左侧菜单的实现代码
Aug 21 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 #Javascript
axios 封装上传文件的请求方法
Sep 26 #Javascript
axios取消请求的实践记录分享
Sep 26 #Javascript
Node.js模拟发起http请求从异步转同步的5种用法
Sep 26 #Javascript
在vue中获取token,并将token写进header的方法
Sep 26 #Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 #Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 #Javascript
You might like
我的论坛源代码(四)
2006/10/09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
php简单压缩css样式示例
2016/09/22 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
javascript Array.remove() 数组删除
2009/08/06 Javascript
javascript类继承机制的原理分析
2009/09/12 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python计算N天之后日期的方法
2015/03/31 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
python之Character string(实例讲解)
2017/09/25 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python实现简易内存监控
2018/06/21 Python
python中的变量如何开辟内存
2018/06/26 Python
Python使用configparser库读取配置文件
2020/02/22 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
运动会邀请函范文
2014/01/31 职场文书
网上卖盒饭创业计划书范文
2014/02/07 职场文书
财务学生的职业生涯发展
2014/02/11 职场文书
机电系毕业生求职信
2014/07/11 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
关于学习的决心书
2015/02/05 职场文书
学生会招新宣传语
2015/07/13 职场文书
2016教师节问候语
2015/11/10 职场文书