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

 更新时间:2018年08月02日 10:35:41   作者:黎明破晓的街道  
这篇文章主要介绍了vue.js图片转Base64上传图片并预览的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

对于前端人员来说,图片处理是一个很常见的需求,由于图片稍微特殊,现在多数做法都是使用调用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>&nbsp;</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字符串即可!

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

相关文章

  • Vue之插槽(Slot)的使用

    Vue之插槽(Slot)的使用

    这篇文章主要介绍了Vue之插槽(Slot)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • vue升级之路之vue-router的使用教程

    vue升级之路之vue-router的使用教程

    自动安装的vue-router,会在src 文件夹下有个一个 router -> index.js 文件 在 index.js 中创建 routers 对象,引入所需的组件并配置路径。这篇文章主要介绍了vue-router的使用,需要的朋友可以参考下
    2018-08-08
  • vue3.0实现移动端电子签名组件

    vue3.0实现移动端电子签名组件

    这篇文章主要为大家详细介绍了vue3.0实现移动端电子签名组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • VUE解决图片视频加载缓慢/首屏加载白屏的问题

    VUE解决图片视频加载缓慢/首屏加载白屏的问题

    在 Vue3 项目中,有时候会出现图片视频加载缓慢、首屏加载白屏的问题,所以本文小编就给大家详细介绍一下如何解决图片视频加载缓慢/首屏加载白屏的问题,需要的朋友可以参考下
    2023-07-07
  • Vue echarts实例项目地区销量趋势堆叠折线图实现详解

    Vue echarts实例项目地区销量趋势堆叠折线图实现详解

    Echarts,它是一个与框架无关的 JS 图表库,但是它基于Js,这样很多框架都能使用它,例如Vue,估计IONIC也能用,因为我的习惯,每次新尝试做一个功能的时候,总要新创建个小项目,做做Demo
    2022-09-09
  • vue 中固定导航栏的实例代码

    vue 中固定导航栏的实例代码

    今天小编就为大家分享一篇vue 中固定导航栏的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 关于@click.native中 .native 的含义与使用方式

    关于@click.native中 .native 的含义与使用方式

    这篇文章主要介绍了关于@click.native中 .native 的含义与使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue采用异步渲染的原理分析

    Vue采用异步渲染的原理分析

    对于Vue为何采用异步渲染,简单来说就是为了提升性能,因为不采用异步更新,在每次更新数据都会对当前组件进行重新渲染,为了性能考虑,Vue会在本轮数据更新后,再去异步更新视图,本文主要通过几个实例给大家介绍一下Vue为何采用异步渲染,需要的朋友可以参考下
    2023-06-06
  • Vue编译器源码分析compileToFunctions作用详解

    Vue编译器源码分析compileToFunctions作用详解

    这篇文章主要为大家介绍了Vue编译器源码分析compileToFunctions作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue全局混入之状态判断是否执行点击

    vue全局混入之状态判断是否执行点击

    这篇文章主要介绍了vue全局混入之状态判断是否执行点击方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03

最新评论