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向Action传中文参数出现乱码问题的解决方法
Dec 29 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
jquery动画效果学习笔记(8种效果)
Nov 13 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
Dec 16 Javascript
微信小程序 数据访问实例详解
Oct 08 Javascript
Vue实现动态响应数据变化
Apr 28 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
Jun 05 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
javascript实现计算器功能
Mar 30 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中Enum(枚举)用法实例详解
2015/12/07 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
js限制input标签中只能输入中文
2015/06/26 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
简单谈谈python中的lambda表达式
2018/01/19 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python ini文件常用操作方法解析
2020/04/26 Python
Pyecharts地图显示不完成问题解决方案
2020/05/11 Python
领导调研接待方案
2014/02/27 职场文书
法人授权委托书格式
2014/04/08 职场文书
会计学专业自荐信
2014/06/25 职场文书
2014年教师节寄语
2014/08/11 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
新人入职感言
2015/07/31 职场文书
开学随笔
2015/08/15 职场文书