vue2使用文件上传读取本地照片并转化base64格式进行展示

创建个vue2项目,直接把代码放到一个vue2页面内运行就好,下面代码拿来即用

<template>
  <div>
    <div class="replace_menu_mask" @click="closeMenu">
      <img :src="replaceImg" alt="" style="width: 100%;">
    </div>
    <div :class="{ 'replace_menu': flag }" v-if="flag">
      <div class="replace_menu_item" @click="randomBgImg">系统随机</div>
      <div class="replace_menu_item">
        相册<input type="file" @change="perPhotoAlbum" name="file" id="file" />
      </div>
      <div class="replace_menu_item item_cancel" @click="closeMenu">取消</div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'replaceMenu',
  data () {
    return {
      flag: true, // 控制弹窗显示
      replaceImg: '', // 选取的图片地址
    }
  },
  methods: {
    closeMenu () {
      // 关闭弹窗
      this.flag = false
    },
    // 本地图片读取(移动端则选择手机相册,pc端选择文件夹)
    perPhotoAlbum (e) {
      const that = this
      let file = e.target.files[0]
      that.getBase64(file).then(res => {
        that.replaceImg = res // 图片地址源
        // 选择完毕后关闭弹窗
        this.flag = false
      })
    },
    // 二进制流转换为base64 格式。
    getBase64 (data) {
      return new Promise((resolve, reject) => {
        const blob = new Blob([data], {
          type: "image/jpg"
        }) //类型一定要写!!!
        const reader = new FileReader()
        reader.readAsDataURL(blob)
        reader.onload = () => resolve(reader.result)
        reader.onerror = (error) => reject(error)
      })
    },
    // 随机显示图片
    randomBgImg () {
      // 随机图片这个自己写个随机数就好,然后抽取不同图片把路径放上去即可,这里讲的主要是从本地拿图片并转化base64格式用于显示
    }
  }
}
</script>

<style lang="less">
.replace_menu_mask {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, .5);
  z-index: 99;
}

.replace_menu {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9999;
  transform: translateY(1000px);
  background-color: #f2f2f2;
  border-top-left-radius: 0.41rem;
  border-top-right-radius: 0.41rem;
  animation: mobileBox 0.5s forwards ease-in-out;

  .replace_menu_item:first-child {
    border-top-left-radius: 0.41rem;
    border-top-right-radius: 0.41rem;
  }

  .replace_menu_item {
    text-align: center;
    padding: 0.307rem;
    border-bottom: 0.0205rem solid rgba(0, 0, 0, .1);
    line-height: 0.41rem;
    background-color: #fff;
    color: #333;
    position: relative;

    #file {
      height: 0.205rem;
    }

    input[type="file"] {
      position: absolute;
      top: 0.41rem;
      right: 0;
      background-color: #fff;
      transform: translate(-300px, 0px) scale(4);

      opacity: 0;
      filter: alpha(opacity=0);
    }
  }

  .item_cancel {
    margin-top: 0.205rem;
    padding: 0.41rem;
  }
}

@keyframes mobileBox {
  0% {
    transform: translateY(1000px);
  }

  100% {
    transform: translateY(0px);
  }
}
</style>

效果图
在这里插入图片描述
选择完图片后直接展示了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/308495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PandoraNext—一个让你呼吸顺畅的ChatGPT

博客地址 PandoraNext—一个让你呼吸顺畅的ChatGPT-雪饼 (xue6ing.cn)https://xue6ing.cn/archives/pandora--yi-ge-rang-ni-hu-xi-shun-chang-de-chatgpt 项目 项目地址 pandora-next/deploy 项目介绍 支持多种登录方式&#xff1a; 账号/密码 Access Token Session To…

探索Shadowsocks-Android:保护你的网络隐私

探索Shadowsocks-Android&#xff1a;保护你的网络隐私 I. 引言 在数字时代&#xff0c;网络隐私和安全变得愈发重要。我们越来越依赖互联网&#xff0c;但同时也面临着各种网络限制和监控。在这个背景下&#xff0c;Shadowsocks-Android应用程序应运而生&#xff0c;为用户提…

文心大模型融入荣耀MagicOS!打造大模型“端云协同”创新样板

2024年1月10日&#xff0c;在荣耀MagicOS 8.0发布会及开发者大会上&#xff0c;荣耀终端有限公司CEO赵明宣布了“百模生态计划”&#xff0c;并与百度集团执行副总裁、百度智能云事业群总裁沈抖共同宣布&#xff0c;百度智能云成为荣耀大模型生态战略合作伙伴。 沈抖在现场演讲…

前端导出Excel文件,部分数字前面0消失处理办法

详细导出可以看之前的文章 js实现导出Excel文档_js 通过 接口 导出 xlsx 代码-CSDN博客 今天的问题是导出一些数据时&#xff0c;有些字段是前面带有0的字符串&#xff0c;而导出后再excel中就被识别成了数字 如图本来字符串前面的0 都没了 解决方案 1. 导出的时候在前面加单…

第86讲:MySQLDump与Binlog日志实现企业级数据备份恢复案例

文章目录 1.企业级数据备份恢复案例描述2.第一环节&#xff1a;周三凌晨进行数据全量备份3.第二环节&#xff1a;模拟周三凌晨备份完之后到下午3点前的业务操作4.第三环节&#xff1a;模拟数据库异常数据丢失导致平台无法使用5.第四环节&#xff1a;发布停服公告全员进入数据恢…

PCL 计算异面直线的距离

目录 一、算法原理二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,PCL 计算异面直线的距离,爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设置直线 A B AB A

【Linux】通过两台linux主机配置ssh实现互相免密登陆

以下是通过两台Linux主机配置SSH实现互相免密登录的代码及操作流程&#xff1a; node1主机IP&#xff1a;192.168.48.129 server主机IP&#xff1a;192.168.48.130 1、在node1主机上生成密钥对&#xff1a; ssh-keygen -t rsa 2、将node1主机的公钥发送到server主机&#x…

Visual Studio 新特性:对 include 指令进行智能诊断

今天&#xff0c;我们很高兴地宣布新功能&#xff1a;#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能&#xff0c;您可以获取到有关每个 include 的引用和生成时间的详细信息&#xff0c;从而更好地了解 #include 指令的行为。 &g…

docker 部署项目的操作文档,安装nginx

目录 1 部署环境检查2 相关知识点2.1 docker默认镜像存放地址2.2 docker 的镜像都是tar 包&#xff1f;2.3 Docker-compose 是直接使用镜像创建容器&#xff1f;2.4 Docker Compose down 就是将容器删除&#xff1f;2.5 删除&#xff0c;会删除挂载嘛2.6 DockerFile 和 docker …

什么是线程?

线程 1. 线程概述 线程是计算机科学中的基本概念&#xff0c;指的是在一个进程中执行的独立指令流。通常&#xff0c;一个进程可以包含多个线程&#xff0c;它们共享进程的资源&#xff0c;如内存空间、文件句柄等&#xff0c;但每个线程有自己的独立执行流。线程是操作系统进…

计算机毕业设计 基于Java的流浪动物救助平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

使用Windbg动态调试目标进程的一般步骤详解

目录 1、概述 2、将Windbg附加到已经启动起来的目标进程上&#xff0c;或者用Windbg启动目标程序 2.1、将Windbg附加到已经启动起来的目标进程上 2.2、用Windbg启动目标程序 2.3、Windbg关联到目标进程上会中断下来&#xff0c;输入g命令将该中断跳过去 3、分析实例说明 …

机器学习之线性回归-多因子房价预测

机器学习是一种实现人工智能的方法 从数据中寻找规律、建立关系&#xff0c;根据建立的关系去解决问题 机器学习的应用场景 数据挖掘、计算机视觉、自然语言处理、证券分析、医学诊断、机器人… 实现机器学习的基本框架 将训练数据喂给计算机&#xff0c;计算机自动求解数据…

javaWebssh校园物业管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh校园物业管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

网工内推 | 上市公司网工,NP认证优先,最高15薪+项目奖金

01 广东轩辕网络科技股份有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、主要负责教育行业园区网的有线及无线网络项目的实施、维护、巡检等工作&#xff1b; 2、协助windows/linux平台服务器OS的安装、部署、配置与维护&#xff1b; 3、协助服务器、存储、…

2023-12-30 买卖股票的最佳时机 II和跳跃游戏以及跳跃游戏 II

122. 买卖股票的最佳时机 II 思路&#xff1a;关键点是每一次利用峰值来计算【画图好理解一点&#xff0c;就是计算陡坡的值】&#xff01;每一次累加和的最大! 或者可以这样理解&#xff0c;把利润划分为每天的&#xff0c;如假如第 0 天买入&#xff0c;第 3 天卖出&#xf…

【I2多语言】多语言快速上手

简介 官方API&#xff1a;http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html意义&#xff1a;更改游戏语言&#xff08;多语言支持&#xff09; 快速上手 插件安装&#xff1a; 直接拖拽进Unity即可 创建语言源&#xff08;Creating a …

夏目友人帐OVA:和猫咪老师的初次跑腿、曾几何时下雪之日 2013.12.15

夏目友人帐OVA 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい2、曾几何时下雪之日 / いつかゆきのひに 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい 和夏目一起外出的途中&#xff0c;猫咪老师因追蜻蜓遇到了一对迷路的龙凤胎兄妹。猫咪老师不…

设计模式⑤ :一致性

一、前言 有时候不想动脑子&#xff0c;就懒得看源码又不像浪费时间所以会看看书&#xff0c;但是又记不住&#xff0c;所以决定开始写"抄书"系列。本系列大部分内容都是来源于《 图解设计模式》&#xff08;【日】结城浩 著&#xff09;。该系列文章可随意转载。 …

旧衣回收小程序,降低企业商家成本,推动行业发展!

随着大众环保意识的增加&#xff0c;人们对于闲置衣服的处理方式也从丢弃转向回收&#xff0c;旧衣服回收行业受到了大家的关注&#xff0c;成为了新的商业发展模式。 在当下科技发展的背景下&#xff0c;旧衣回收从回收箱演变到了线上预约上门回收&#xff0c;旧衣回收小程序…