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 相关文章推荐
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
利用fecha进行JS日期处理
Nov 21 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
Vue组件通信之Bus的具体使用
Dec 28 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
vue 进阶之实现父子组件间的传值
Apr 26 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 Javascript
vue+element UI实现树形表格
Dec 29 Vue.js
如何在 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
用PHP实现WEB动态网页静态
2006/10/09 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
vue axios请求超时的正确处理方法
2018/04/02 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
js实现微信聊天效果
2020/08/09 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python获取android设备的GPS信息脚本分享
2015/03/06 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
PyTorch中的Variable变量详解
2020/01/07 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
毕业生怎样写好自荐信
2013/11/11 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
婚礼父母致辞
2015/07/28 职场文书
财务人员入职担保书
2015/09/22 职场文书
2019公司管理制度
2019/04/19 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP