返回顶部
首页 > 资讯 > 前端开发 > 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://lsjlt.com/news/149414.html(转载时请注明来源链接)

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

猜你喜欢
  • js利用FileReader实现图片转base64格式并上传预览头像
    目录页面布局:思路分析:代码:修改用户头像,一般都会需要把图片转成base64格式,所以我们需要学会怎么利用FileReader转换 页面布局: <template> ...
    99+
    2024-04-02
  • js怎么利用FileReader实现图片转base64格式并上传预览头像
    今天小编给大家分享一下js怎么利用FileReader实现图片转base64格式并上传预览头像的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-06-30
  • vue.js如何实现图片转Base64上传图片并预览
    这篇文章主要为大家展示了“vue.js如何实现图片转Base64上传图片并预览”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue.js如何实现图片转Base6...
    99+
    2024-04-02
  • php如何实现图片转base64格式并上传
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。在实际开发项目的过程中处理图片上传是一定会遇到的,例如使用thinkphp的小伙伴一定很熟悉import("@.ORG.UploadFile&quo...
    99+
    2019-05-21
    php 图片 base64
  • jQuery如何实现点击头像上传并预览图片
    这篇文章主要为大家展示了“jQuery如何实现点击头像上传并预览图片”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jQuery如何实现点击头像上传并预览图片”这...
    99+
    2024-04-02
  • JavaSctit如何利用FileReader和滤镜上传图片预览功能
    小编给大家分享一下JavaSctit如何利用FileReader和滤镜上传图片预览功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!FileReader 对象允许Web应用程序异步读取存储...
    99+
    2024-04-02
  • 怎么用PHP+Ajax实现无刷新上传头像图片预览功能
    这篇文章主要讲解了“怎么用PHP+Ajax实现无刷新上传头像图片预览功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用PHP+Ajax实现无刷新上传头...
    99+
    2024-04-02
  • Python OpenCV实现传统图片格式与base64转换
    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。通过http传输图片常常将图片数据转换成base64之后再进行传输...
    99+
    2024-04-02
  • JS+HTML5如何实现上传图片预览效果
    这篇文章给大家分享的是有关JS+HTML5如何实现上传图片预览效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例代码如下:<!DOCTYPE HTML>...
    99+
    2024-04-02
  • JS如何实现上传图片实时预览功能
    这篇文章主要为大家展示了“JS如何实现上传图片实时预览功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS如何实现上传图片实时预览功能”这篇文章吧。前段时间在...
    99+
    2024-04-02
  • 怎么利用nodeJS+vue图片上传实现更新头像
    本篇内容主要讲解“怎么利用nodeJS+vue图片上传实现更新头像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用nodeJS+vue图片上传实现更新头像”吧!思路:前端通过el-uplo...
    99+
    2023-06-30
  • 如何利用原生JS实现图片预览加上传(前后端交互)
    目录前言效果大致如下前端代码后端代码总结前言 最近在写vue项目的时候发现了个Vant的一个upload的图片上传的组件,就好奇了一下下,于是萌生了一个自己手写一个图片上传的组件的想...
    99+
    2024-04-02
  • javascript实现上传图片并预览的效果实现代码
    今天用alphaimageloader滤镜的src属就是其中的主角它将使用绝对或相对url地址指定背景图像。假如忽略此参数,滤镜将不会作用。复制代码 代码如下: <!docty...
    99+
    2022-11-21
    上传图片 预览
  • 利用nodeJS+vue图片上传实现更新头像的过程
    目录思路:1、前端准备2、node后端服务总结思路: 前端通过el-upload将图片传给后端服务,后端通过formidable中间件解析图片,生成图片到静态资源文件夹下(方便前端直...
    99+
    2024-04-02
  • Html5 中怎么利用FileReader实现即时上传图片功能
    Html5 中怎么利用FileReader实现即时上传图片功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。<!DOCT...
    99+
    2024-04-02
  • angularjs怎么实现多张图片上传并预览功能
    这篇文章主要介绍angularjs怎么实现多张图片上传并预览功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下directive.js    angu...
    99+
    2024-04-02
  • Html5怎么实现上传本地图片并预览功能
    小编给大家分享一下Html5怎么实现上传本地图片并预览功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近工作中需要H5上传显...
    99+
    2024-04-02
  • React+ajax+java如何实现上传图片并预览功能
    小编给大家分享一下React+ajax+java如何实现上传图片并预览功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!之前有在网上找ajax上传图片的资料,大部...
    99+
    2023-06-08
  • JS如何实现打开摄像头并截图上传功能
    小编给大家分享一下JS如何实现打开摄像头并截图上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JS打开摄像头并截图上传至后端的一个完整步骤1. 打开摄像头主要用到getUserMed...
    99+
    2024-04-02
  • 详解nodejs实现本地上传图片并预览功能(express4.0+)
    Express为:4.13.1 multyparty: 4.1.2 代码主要实现本地图片上传到nodejs服务器的文件下,通过取图片路径进行图片预览 写在前面:计划实现图片上传预览功能,但是本地图片上传所...
    99+
    2022-06-04
    上传图片 详解 功能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作