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

html代码:

  1.  
    <div id="myPhoto" v-show="personalPhoto">
  2.  
    <div class="viewPhoto">
  3.  
    <img src="" alt="" id="portrait"style="width: 300px;height: 300px" />
  4.  
    </div>
  5.  
    <div class="listBox">
  6.  
    <dl>
  7.  
    <dt>请上传图片</dt>
  8.  
    <dd>
  9.  
    <input type="file"id="saveImage" name="myphoto" >
  10.  
    </dd>
  11.  
    </dl>
  12.  
    </div>
  13.  
    <div class="save">
  14.  
    <input type="button" value="保存图片" @click="imageSubmit">
  15.  
    </div>
  16.  
    </div>

js代码:

  1.  
    //实时显示该图片在页面
  2.  
     great(){
  3.  
    document.getElementById('saveImage').onchange = function () {
  4.  
    var imgFile = this.files[0];
  5.  
    var fr = new FileReader();
  6.  
    fr.onload = function () {
  7.  
    document.getElementById('portrait').src = fr.result;
  8.  
    };
  9.  
    fr.readAsDataURL(imgFile);
  10.  
    }
  11.  
    },

js代码部分说明:因为是在vue的methods方法中申明的函数,所以还需要在mounted 方法中使用this.great()挂载该方法。

图片上传部分的js代码:

  1.  
    imageSubmit(){
  2.  
    let x = document.getElementById('saveImage').files[0];
  3.  
    console.log(x);
  4.  
    let params = new FormData() ; //创建一个form对象
  5.  
    params.append('file',x,x.name); //append 向form表单添加数据
  6.  
    //添加请求头 通过form添加的图片和文件的格式必须是multipart/form-data
  7.  
    let config = {
  8.  
    headers:{'Content-Type':'multipart/form-data'}
  9.  
    };
  10.  
    this.$axios.post("/user/image",params,config)
  11.  
    .then(function(res){
  12.  
    console.log(res);
  13.  
    this.imageSave = res.data.image;
  14.  
    sessionStorage.setItem('headImg',this.imageSave); //将图片保存,并能够在其他地方加载显示
  15.  
    router.go(0); //刷新页面,头像改变
  16.  
    }.bind(this))
  17.  
    .catch(function (error) {
  18.  
    console.log(error);
  19.  
    })
  20.  
    }
  21.  
    },

最终效果图:

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

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

vue中使用axios post上传头像/图片并实时显示到页面的更多相关文章

  1. javascript异步上传压缩图片并立即显示图片

    javascript异步上传压缩图片并立即显示图片<pre><!doctype html><html><head><meta charset=&q ...

  2. $cordovaCamera 插件 上传头像 图片功能

    首先要注入  $cordovaCamera 使用相机拍照 var useCamera = function() { var options = { //这些参数可能要配合着使用,比如选择了source ...

  3. 上传base64图片并压缩

    elementUI+react 布局 <Dialog title="充值" visible={ dialogVisible } onCancel={ () => thi ...

  4. vue中el-upload上传多图片且携带参数,批量而不是一张一张的解决方案

    现在前端基本不是vue技术栈就是react技术栈. vue技术栈最常用的就是element-ui的ui框架了. 在项目中,我们经常会碰到这种需求:批量上传文件 element-ui 确实也为我们提供了 ...

  5. day105:Mofang:设置页面初始化&更新头像/上传头像&设置页面显示用户基本信息

    目录 1.设置页面初始化 2.更新头像 1.点击头像进入更新头像界面 2.更新头像页面初始化 3.更新头像页面CSS样式 4.头像上传来源选择:相册/相机 5.调用api提供的本地接口从相册/相机提取 ...

  6. 解决HTML5实现一键拨号、一键发短信及上传头像兼容性问题

    HTML5实现一键拨号,一键发短信以及上传头像等问题都是比较常见的场景,近期在做移动端项目的时候遇到阻挠,通过查找资料解决了问题: 废话不多说,直接上案例代码: HTML5实现一键拨号: <a ...

  7. Laravel中的日志与上传

    PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架 ...

  8. swift上传头像

    很久没有写博客了,今天特地写了这个,也是一边仿照别人写的demo,注释部分都是需要的.需要的同学可以参考一下. @IBAction func headImageBtnPage(){  //上传头像 / ...

  9. 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)

    现在很多下载客户端程序都需要设定自己头像的功能,而设定头像一般有两种方式:使用摄像头自拍头像,或者选择一个图片的某部分区域作为自己的头像. 一.相关技术 若要实现上述的自拍头像和上传头像的功能,会碰到 ...

随机推荐

  1. 创建微服务项目后,在谷歌、Safari等浏览器下无法访问的具体原因

    使用SpringBoot开发了一个项目,端口随机给指定了一个,如6666. 可是奇葩的现象出现了,当在谷歌浏览器地址栏中输入localhost:6666访问的时候,提示无法访问. 检查良久,发现代码也 ...

  2. ElasticSearch API 之 DELETE

    删除API,可以根据特定的ID删除文档. $ curl -XDELETE 'http://localhost:9200/website/blog/AVbkih8AltSLRRB7XAun' 会返回下面 ...

  3. AnyChart图表仪表控件在Flex环境下使用

    AnyChart控件是一款当前流行的数据可视化解决方案,使客户可以创建交互地.生动的图表.实时仪表和地图.同时支持Flash和HTML5显示,控件提供极好的视觉外观和配色方案能够使客户根据不同的需求设 ...

  4. leetcode 15. 3Sum 二维vector

    传送门 15. 3Sum My Submissions Question Total Accepted: 108534 Total Submissions: 584814 Difficulty: Me ...

  5. JS 操作XML

    loadXML    = function(xmlFile) {     var xmlDoc;     if(window.ActiveXObject)     {         xmlDoc   ...

  6. (43)C#网络1 http

    一.HttpClient类 用于发送http请求,并接受请求的相应 (从4.5起开始可用) using System.Net.Http; 异步调用 HttpClient httpClient = ne ...

  7. JavaScript插件

    Spket ide Spket ide是强大的工具包为了JavaScript和XML的开发,这个强大的编辑器对JavaScript, XUL/XBLand Yahoo! Widget的开发都有全面的支 ...

  8. 关于Properties 集 添加数据 遍历数据

    public static void fun1(){ Properties v = new Properties(); v.setProperty("a","1" ...

  9. Docker 基础底层架构浅谈

    docker学习过程中,免不了需要学习下docker的底层技术,今天我们来记录下docker的底层架构吧! 从上图我们可以看到,docker依赖于linux内核的三个基本技术:namespaces.C ...

  10. weex splash页面

    1.Splash.vue <!-- splash页面 --> <template> <div class="wrap" @focus="ro ...