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 相关文章推荐
js宝典学习笔记(上)
Jan 10 Javascript
使用jQuery重置(reset)表单的方法
May 05 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
JS实现带提示的星级评分效果完整实例
Oct 30 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
javascript实现移动端上的触屏拖拽功能
Mar 04 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
webpack打包多页面的方法
Nov 30 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
了解JavaScript表单操作和表单域
May 27 Javascript
JavaScript对象属性操作实例解析
Feb 04 Javascript
AJAX实现省市县三级联动效果
Oct 16 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
星际玩家的三大定律
2020/03/04 星际争霸
PHP将XML转数组过程详解
2013/11/13 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
javascript高级学习笔记整理
2011/08/14 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Python中的异常处理简明介绍
2015/04/13 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
python的常见矩阵运算(小结)
2019/08/07 Python
wxPython色环电阻计算器
2019/11/18 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
学习演讲稿范文
2014/05/10 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
2014年政协委员工作总结
2014/12/01 职场文书
会议主持词通用版
2019/04/02 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS