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 解决“options为空或不是对象”
Dec 22 Javascript
JavaScript 闭包深入理解(closure)
May 27 Javascript
jquery ready函数源代码研究
Dec 06 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
Feb 09 Javascript
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
p5.js 毕达哥拉斯树的实现代码
Mar 23 Javascript
webpack4 处理CSS的方法示例
Sep 03 Javascript
vue弹窗插件实战代码
Sep 08 Javascript
基于Proxy的小程序状态管理实现
Jun 14 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代码实现页面伪静态的方法
2015/07/25 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
Javascript实现单例模式
2016/01/24 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
酒店总经理工作职责
2013/12/13 职场文书
安全生产投入制度
2014/01/29 职场文书
《开国大典》教学反思
2014/04/19 职场文书
物理学专业自荐信
2014/06/11 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫