广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js利用FileReader实现图片转base64格式并上传预览头像
  • 536
分享到

js利用FileReader实现图片转base64格式并上传预览头像

2024-04-02 19:04:59 536人浏览 八月长安
摘要

目录页面布局:思路分析:代码:修改用户头像,一般都会需要把图片转成base64格式,所以我们需要学会怎么利用FileReader转换 页面布局: <template>

修改用户头像,一般都会需要把图片转成base64格式,所以我们需要学会怎么利用FileReader转换

页面布局:

<template>
  <el-card class="box-card">
    <div slot="header" class="clearfix">
      <span>更换头像</span>
    </div>
    <div>
      <!-- 图片,用来展示用户选择的头像 -->
      <img :src="Avatar" alt="" style="width:350px;"  v-if="Avatar"/>
      <img src="../../../assets/images/avatar.jpg" alt=""  v-else />

      <!-- 按钮区域 -->
      <div class="btn-box">
        <input type="file" style="display:none;" ref="refIpt" @change="onIptChange">
        <el-button type="primary" icon="el-icon-plus" @click="chooseImg">选择图片</el-button>
        <el-button type="success" icon="el-icon-upload" :disabled="Avatar===''"  @click="upLoadAvatar">上传头像</el-button>
      </div>
    </div>
  </el-card>
</template>

思路分析:

  • 1.点击button按钮触发input的点击事件,所以需要给input设置ref拿到Dom
  • 2.给input设置change改变事件
    • 2.1设置一个变量接收转换的数据
    • 2.2拿到事件目标,里面有个方法e.target.files是个伪数组.通过e.target.files.length判断用户是否选择了图片
    • 2.3通过new FileReader拿到一个实例
    • 2.4通过 实例名.readAsDataURL 将图片转成base64格式
    • 2.5onload可以监听转换完成后/给声明变量赋值
  • 3.点击上传按钮发送axiOS/上传成功重新请求用户信息实现信息刷新

代码:

<script>
export default {
  name: 'UserAvatar',
  data () {
    return {
      // 声明一个变量存储转好的base64进制
      Avatar: ''
    }
  },
  methods: {
    // 点击button触发input点击事件
    chooseImg () {
      this.$refs.refIpt.click()
    },
    // input内容改变事件
    // e拿到事件对象
    onIptChange (e) {
      // e.target.files是个伪数组/可以通过长度判断用户是否选择了图片
      if (e.target.files.length === 0) {
        // 点击了取消了,就恢复默认图片
        this.Avatar = ''
      } else {
        // FileReader 浏览器提供的方法
        const reader = new FileReader()
        // reader里面有个方法readAsDataURL 可以将图片转base64进制
        reader.readAsDataURL(e.target.files[0])
        // onload可以监听转换完成后
        reader.onload = () => {
        // 给声明变量赋值
          this.Avatar = reader.result
        }
      }
    },
    // 点击上传头像
    async  upLoadAvatar () {
      // 发送axios 上传
      const { data: res } = await this.$Http.patch('/my/update/avatar', { avatar: this.Avatar })
      // 判断业务状态码是否上传成功给出提示
      if (res.code !== 0) return this.$message.error(res.message)
      console.log(res)
      this.$message.success(res.message)
      // 上传成功发送重新发送axios获取最新用户信息
      this.$store.dispatch('initUserInfo')
    }
  }

}
</script>

到此这篇关于js利用FileReader实现图片转base64格式并上传预览头像的文章就介绍到这了,更多相关js FileReader 图片转base64内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: js利用FileReader实现图片转base64格式并上传预览头像

本文链接: https://www.lsjlt.com/news/149414.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js利用FileReader实现图片转base64格式并上传预览头像
    目录页面布局:思路分析:代码:修改用户头像,一般都会需要把图片转成base64格式,所以我们需要学会怎么利用FileReader转换 页面布局: <template> ...
    99+
    2022-11-13
  • js怎么利用FileReader实现图片转base64格式并上传预览头像
    今天小编给大家分享一下js怎么利用FileReader实现图片转base64格式并上传预览头像的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-06-30
  • vue.js如何实现图片转Base64上传图片并预览
    这篇文章主要为大家展示了“vue.js如何实现图片转Base64上传图片并预览”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue.js如何实现图片转Base6...
    99+
    2022-10-19
  • php如何实现图片转base64格式并上传
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。在实际开发项目的过程中处理图片上传是一定会遇到的,例如使用thinkphp的小伙伴一定很熟悉import("@.ORG.UploadFile&quo...
    99+
    2019-05-21
    php 图片 base64
  • jQuery如何实现点击头像上传并预览图片
    这篇文章主要为大家展示了“jQuery如何实现点击头像上传并预览图片”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现点击头像上传并预览图片”这...
    99+
    2022-10-19
  • 怎么用PHP+Ajax实现无刷新上传头像图片预览功能
    这篇文章主要讲解了“怎么用PHP+Ajax实现无刷新上传头像图片预览功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用PHP+Ajax实现无刷新上传头...
    99+
    2022-10-18
  • 如何利用原生JS实现图片预览加上传(前后端交互)
    目录前言效果大致如下前端代码后端代码总结前言 最近在写vue项目的时候发现了个Vant的一个upload的图片上传的组件,就好奇了一下下,于是萌生了一个自己手写一个图片上传的组件的想...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作