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中,为什么要尽可能使用局部变量?
Apr 06 Javascript
ExtJS中设置下拉列表框不可编辑的方法
May 07 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
JavaScript 计算笛卡尔积实例详解
Dec 02 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
javascript中神奇的 Date对象小结
Oct 12 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
浏览器JavaScript调试功能无法使用解决方案
Sep 18 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
jQuery live
2009/05/15 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
Python实现简易版的Web服务器(推荐)
2018/01/29 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
中专毕业生自我鉴定范文
2013/11/09 职场文书
广告设计专业自荐信范文
2013/11/14 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
医生学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
小学运动会加油稿
2015/07/22 职场文书
禁毒主题班会教案
2015/08/14 职场文书
岗位聘任协议书
2015/09/21 职场文书
护理心得体会范文
2016/01/22 职场文书
用python自动生成日历
2021/04/24 Python