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 validate使用攻略 第四步
Jul 01 Javascript
jQuery代码优化 选择符篇
Nov 01 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
禁用JavaScript控制台调试的方法
Mar 07 Javascript
javascript实现页面内关键词高亮显示代码
Apr 03 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
JS实现模糊查询带下拉匹配效果
Jun 21 Javascript
Vue脚手架的简单使用实例
Jul 10 Javascript
VUE 配置vue-devtools调试工具及安装方法
Sep 30 Javascript
从零搭一个自用的前端脚手架的方法步骤
Sep 23 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 Javascript
学前端,css与javascript重难点浅析
Jun 11 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
PHP读取MySQL数据代码
2008/06/05 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
php中上传文件的的解决方案
2018/09/25 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
javascript操作cookie
2017/01/17 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
Python获取任意xml节点值的方法
2015/05/05 Python
Python数据类型学习笔记
2016/01/13 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
乌克兰巴士票购买网站:inBus
2021/03/12 全球购物
城市规划毕业生求职信
2013/10/10 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
邓小平理论心得体会
2014/09/09 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书