ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2018-10-18 15:00:36  阅读:168  来源: 互联网

标签:


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

html代码:

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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代码:

?
1 2 3 4 5 6 7 8 9 10 11 //实时显示该图片在页面  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代码:

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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 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上传头像

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

?
1 var windowURL = window.URL || window.webkitURL;

标签:
来源: https://www.cnblogs.com/xiaoyingainiaa/p/9810514.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有