打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vue中使用axios post上传头像/图片并实时显示到页面的方法

在前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法。

html代码:

前端精品教程:百度网盘下载

?
12345678910111213141516<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代码:

?
1234567891011//实时显示该图片在页面 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代码:

前端精品教程:百度网盘下载

?
123456789101112131415161718192021imageSubmit(){  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);  }) } },

最终效果图:

前端精品教程:百度网盘下载

注:在后来的开发过程中发现,上传图片在上传服务器前在页面加载可以使用

?
1var windowURL = window.URL || window.webkitURL;
来源:http://www.icode9.com/content-4-58451.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jsliang 的 2019 面试准备
Antdv+Asp.net WebApi开发学生信息管理系统(二)
Vue2+VueRouter2+Webpack+Axios 构建项目实战(一)基础知识概述
前端开发框架之Vue开发流程与使用
前端组件设计原则
vue 和php使用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服