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

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. charts 画饼图

    统计某一天某类物体的百分比 新知识点:aggregate https://blog.csdn.net/congcong68/article/details/51619882 主要的 $group $m ...

  2. AtCoder Regular Contest 095E - Symmetric Grid

    $n \leq 12,m \leq 12$,$n$行$m$列小写字母,现可做无数次操作:交换两行:交换两列.问是否有可能把他变成中心对称的. 没有去想分组枚举的复杂度QAQ 行和列的操作顺序是随意的. ...

  3. AC日记——草地排水 codevs 1993

    1993 草地排水 USACO  时间限制: 2 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 在农夫约翰的农场上,每 ...

  4. noip 2013 luogu P1969 积木大赛

    题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...

  5. error MIDL2311 解决方法

    error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode : [] 在编 ...

  6. C语言知识结构之二

    C语言的知识结构整理成思维导图,例如以下图所看到的: 这张图的总体思路是: 用C敲代码.该学会什么? 要用C写的更好,改学会什么? 事实上.仅仅要是分层的知识结构,大致的思路是: 首先,研究本层的知识 ...

  7. C#压缩或解压(rar和zip文件)

    /// <summary> /// 解压RAR和ZIP文件(需存在Winrar.exe(只要自己电脑上可以解压或压缩文件就存在Winrar.exe)) /// </summary&g ...

  8. MongoDB:分片(简介 & 自动分片 & 片键)

    分片(增加服务器,水平扩展)是MongoDB的扩展方式,通过分片能过增加更多的机器来应对不断增加的负载和数据,还不影响应用. [简介] 分片(sharding)是指将数据拆分,将其分散存在不同的机器上 ...

  9. HDU 1085 Holding Bin-Laden Captive!(母函数,或者找规律)

    Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  10. Android的Message Pool是个什么鬼,Message Pool会否引起OOM——源代码角度分析

    引言 Android中,我们在线程之间通信传递通常採用Android的消息机制,而这机制传递的正是Message. 通常.我们使用Message.obtain()和Handler.obtainMess ...