input上传图片;input上传file;vue上传图片。js读取文件的base64;通过File文件读取base64;

本篇是通过File文件来获取base64的;如果需要 通过文件url获取base64看这篇

需求:上传图片并获取base,用的是input file功能上传
注意点:input上传相同文件不触发的原因。需要将inputDOM.value = null (不过置空后 29行的打印 就看不到 event.target.files 文件数据(可以先注释此行看下数据–就是图片文件) )
在这里插入图片描述

以下代码可以直接复制使用!!!有效的点赞

注意文件取值 有的是event.target.files[0] ;有的是event.detail.file ;看自己的控制台输出。
记住是读取这个File格式文件即可
在这里插入图片描述
在这里插入图片描述

<template>
  <div class="content">
    <input type="file" class="box-orc-input" @change="uploadPic($event)" />
    <img class="img_box" :src="imgsrc" alt="">

    <div>{{imgsrc}}</div>

  </div>
</template>

<script>
function ie9 () {
  if (navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE6.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE7.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE8.0" || navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.split(";")[1].replace(/[ ]/g, "") == "MSIE9.0") {
    return true
  } else {
    return false
  }
}
export default {
  data () {
    return {
      imgsrc: '',
    }
  },

  methods: {
    // 通过input上传图片
    uploadPic (event) {
      console.log(event)
      console.log('event.target.files[0]==',event.target.files[0])//注意有的是取值 event.target.files[0]  有的是取值 event.detail.file
      if (event.target.files[0].type != 'image/png' && event.target.files[0].type != 'image/jpg' && event.target.files[0].type != 'image/jpeg') {
        return this.$message.warning('请选择上传图片,格式支持:.png 或 .jpeg 或 .jpeg')
      }
      if (ie9()) {
        this.$message.warning('iE9及以下版本IE浏览器暂不支持该功能,请升级IE浏览器或者用其他浏览器操作。')
        retrun
      }
      //iE9及以下版本IE浏览器暂不支持该功能,请升级IE浏览器或者用其他浏览器操作。
      let inputDOM = event.target
      let _this = this
      var reader = new FileReader()
      reader.readAsDataURL(inputDOM.files[0])
      reader.onload = function (e) {
        var base = e.target.result

        let res = base.split(',')
        console.log(1111, e)
        console.log('图片的base64码,可以直接赋值给img的src显示图片', base)
        _this.imgsrc = base
        console.log()

      }

      inputDOM.value = null //将input置空 否则上传相同文件无反应 (不过置空后 29行的打印 就看不到 event.target.files 文件数据 30行直接打印可以看到文件数据(可以先注释此行看下数据--就是图片文件)   )
    },
  }
}
</script>

<style>
.img_box {
  /* width: 100px;
  height: 100px; */
}
.content {
  padding: 20upx;
}
</style>



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值