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 相关文章推荐
关于文本框的一些限制控制总结~~
Apr 15 Javascript
js 纯数字不重复排列的另类方法
Jul 17 Javascript
javascript 二进制运算技巧解析
Nov 27 Javascript
如何用ajax来创建一个XMLHttpRequest对象
Dec 10 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
javascript实现滑动解锁功能
Mar 22 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
详解Vue.js项目API、Router配置拆分实践
Mar 16 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
webpack公共组件引用路径简化小技巧
Jun 15 Javascript
Vue+Element实现网页版个人简历系统(推荐)
Dec 31 Javascript
vue中template的三种写法示例
Oct 21 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
Python连接Impala实现步骤解析
2020/08/04 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
学年自我鉴定
2014/01/16 职场文书
妇女儿童发展规划实施方案
2014/03/16 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
政协会议宣传标语
2014/10/09 职场文书
离婚律师函范本
2015/05/27 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis