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继承的实现
Oct 24 Javascript
深入解析contentWindow, contentDocument
Jul 04 Javascript
JQuery中使用ajax传输超大数据的解决方法
Jul 14 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
node.js中的fs.fstatSync方法使用说明
Dec 15 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
jquery遍历标签中自定义的属性方法
Sep 17 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
Oct 27 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
使用TS来编写express服务器的方法步骤
Oct 29 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 分页原理分析,大家可以看看
2009/12/21 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
java直接调用python脚本的例子
2014/02/16 Python
python中的错误处理
2016/04/10 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
Python如何使用字符打印照片
2020/01/03 Python
django rest framework使用django-filter用法
2020/07/15 Python
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
党员自我评价分享
2013/12/13 职场文书
致短跑运动员广播稿
2014/01/09 职场文书
企业安全标语
2014/06/07 职场文书
护士找工作求职信
2014/07/02 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
预备党员群众路线思想汇报2014
2014/10/25 职场文书
python中tkinter复选框使用操作
2021/11/11 Python
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
PHP正则表达式之RCEService回溯
2022/04/11 PHP