vue.js图片转Base64上传图片并预览的实现方法


Posted in Javascript onAugust 02, 2018

对于前端人员来说,图片处理是一个很常见的需求,由于图片稍微特殊,现在多数做法都是使用调用ajax接口通过http方法来提交,例如post方法提交,后台处理后返回一个图片路径给前端,前端根据这个路径写入img标签,但是基于当前的前后端分离的开发模式下,前后端代码往往不在同一个系统目录下,而且部署时可能liunx路径与windows路径不一样,这样后期路径更改可能会导致维护困难问题出现。

针对这种问题,这里我推荐使用图片转base64格式,再发给后端,后端只需将转码结果存入数据库即可,前端调用接口直接获取到base64数据直接写入img src 标签即可

下面使用element ui upload组件实现思路

代码如下:

<el-upload
   ref='upload'
   :auto-upload='false' 
   :file-list="fileList" 
   :multiple='false'
   :limit="1"
   :on-exceed="handleExceed"
   :http-request="uploadFiles" 
   accept="image/jpeg,image/gif,image/png"
   action=''
   :on-change='changeUpload'      
   >
  <el-button slot="trigger" size="mini" type="primary">选取图片</el-button>
  <span> </span>
  <el-button @click='uploadFiles' size="mini" type="primary">点击上传</el-button>
 </el-upload>

js部分

//点击上传图片,上传成功返回图片路径 
  uploadFiles(){
    var That=this;
   let file=this.$refs.upload.$refs['upload-inner'].$refs.input; //获取文件数据
   let fileList=file.files;   
   var imgFile;
   let reader = new FileReader();   //html5读文件
   reader.readAsDataURL(fileList[0]); //转BASE64    
   reader.onload=function(e) {    //读取完毕后调用接口
    imgFile = e.target.result;
    let obj={
      id: "loginLogo",
      configGroup: "logo",
      configItem : "loginLogo",
     itemValue : imgFile  
    }
    return BaseApi.uploadFiles(obj).then((res)=>{
      if(res.status=='SUCCESS'){
        AlertBox('图片上传成功!','success',true).then(()=>{
          return That.getSysLogo(); //调用获取base64数据接口
        });
      }else{
        Alert('图片上传失败',res);
        return ''
      }
    })

   };     
  },

最后在界面img src标签中绑定That.getSysLogo()接口返回的base64字符串即可!

以上就是本文全部内容。 希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js arguments对象应用介绍
Nov 28 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
Aug 27 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
Oct 29 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 Javascript
html中通过JS获取JSON数据并加载的方法
Nov 30 Javascript
vue+element实现表格新增、编辑、删除功能
May 28 Javascript
javascript实现移动端轮播图
Dec 09 Javascript
vue组件横向树实现代码
Aug 02 #Javascript
利用Node.js批量抓取高清妹子图片实例教程
Aug 02 #Javascript
在微信小程序里使用watch和computed的方法
Aug 02 #Javascript
在小程序中使用Echart图表的示例代码
Aug 02 #Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 #Javascript
Vue-cli配置打包文件本地使用的教程图解
Aug 02 #Javascript
详解使用VueJS开发项目中的兼容问题
Aug 02 #Javascript
You might like
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
Python常用列表数据结构小结
2014/08/06 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
对pandas中apply函数的用法详解
2018/04/10 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
Linux如何压缩可执行文件
2013/10/21 面试题
保荐人的岗位职责
2013/11/19 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
部队个人年终总结
2015/03/02 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
2016优秀教师先进个人事迹材料
2016/02/25 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
Python源码解析之List
2021/05/21 Python