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 相关文章推荐
JavaScript 仿关机效果的图片层
Dec 26 Javascript
ext jquery 简单比较
Apr 07 Javascript
基于jquery的表头固定的若干方法
Jan 27 Javascript
js面向对象编程之如何实现方法重载
Jul 02 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
jquery插件ContextMenu设置右键菜单
Mar 13 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
Vue渲染函数详解
Sep 15 Javascript
vue项目中使用axios上传图片等文件操作
Nov 02 Javascript
jQuery实现带进度条的轮播图
Sep 13 jQuery
适合后台管理系统开发的12个前端框架(小结)
Jun 29 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 5.0 Pear安装方法
2006/12/06 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
php中使用sftp教程
2015/03/30 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
四种会话跟踪技术
2015/05/20 面试题
优秀民警事迹材料
2014/01/29 职场文书
贷款委托书怎么写
2014/08/02 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
单身申明具结书
2015/02/26 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
欧元符号 €
2022/02/17 杂记
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python