uniapp同步将本地图片转换为base64,支持微信、H5、APP

接上篇,少了一个方法的源代码。

先上代码:

ploadFilePromiseSync = (url) => {

return new Promise((resolve, reject) => {

// #ifdef MP-WEIXIN

uni.getFileSystemManager().readFile({

filePath: url,

encoding: 'base64',

success: res => {

let base64 = 'data:image/jpeg;base64,' + res.data

resolve(base64)

},

fail: (e) => {

reject("图片转换失败")

}

});

// #endif

// #ifdef H5

uni.request({

url: url,

method: 'GET',

responseType: 'arraybuffer',

success: ress => {

let base64 = uni.arrayBufferToBase64(ress.data)

base64 = 'data:image/jpeg;base64,' + base64

resolve(base64)

},

fail: (e) => {

reject("图片转换失败")

}

});

// #endif

// #ifdef APP-PLUS

plus.io.resolveLocalFileSystemURL(url, (entry) => {

entry.file((file) => {

let fileReader = new plus.io.FileReader();

fileReader.onloadend = (evt) => {

const base64 = evt.target.result.substr(22)

resolve(base64)

};

fileReader.readAsDataURL(file)

});

}, (e) => {

reject("Resolve file URL failed: " + e.message)

});

// #endif

});

}

只需将本地图片的路径传过去即可:

使用:

let img_base64 = await ploadFilePromiseSync(event.file.url)

这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

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

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

相关文章

总结一下linux性能检测和调优手段

1.perf 是 Linux 系统中性能分析工具,用于收集性能相关的信息。它可以用于查看 CPU 使用情况、内存性能、磁盘 I/O 等,以帮助开发者找到性能瓶颈。 以下是一些 perf 常见用法和示例: 1. CPU Profiling a. 查看 CPU 使用率 perf stat -e cpu…

C++ 快速排序快速选择

目录 1、75. 颜色分类 2、912. 排序数组 3、 215. 数组中的第K个最大元素 4、LCR 159. 库存管理 III 1、75. 颜色分类 思路:利用快速排序思路,使用三指针分块进行优化。 [0,left]——小于key[left1,right-1]——等于key[right,nums.size()]——大于k…

金三银四跳槽季,你不得不知道的5个面试技巧

正式进入金三银四招聘季了,即将投入求职大战的小伙伴们,你真的准备好了吗? 别急,在参加面试前,请你看完这篇文章,相信面试成功率会提升不少。 1 “能力不如你,却薪资比你高” 背后隐藏的逻辑 …

前端src中图片img标签资源的几种写法?

在 Vue 项目中引用图片路径有几种不同的方法,具体取决于你的项目结构和配置。以下是几种常见的方式: 1. 静态资源目录 (Public) 如果你的图片放在了项目的 public 目录下(例如,Vite 和 Create Vue App 脚手架工具通常使用这个目…

wps软件怎么压缩文件?这样操作就可以~

WPS Office是一款功能强大的办公软件套件,其中包括文字处理、表格编辑和演示文稿制作等功能。在本文中,我们将介绍如何利用WPS软件以及其他压缩工具进行文件压缩,让您在处理文件时更加便捷高效。 除了这些基本功能外,WPS Office还…

lettuce webdriver 自动化测试---玩转BDD

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

指针进阶(一)

文章目录 1:字符指针变量2:指针数组3:数组指针3.1数组指针的定义3.2:&数组名vs数组名 4:数组参数,指针参数4.1:一维数组传参的本质4.1.1:场景一4.1.2:场景二4.1.3:场景三4.1.4:场景四4.1.5:场景五 4.2:二维数组传参的本质4.2.1:场景一4.2.2:场景二4.2.3:场景三4.2.4:场景四…

光影魔术师:Photoshop 2022——你的创意无限可能

在数字艺术的广阔天地中,有一款软件如同魔法师般,以其强大的功能和无尽的可能性,引领着无数创意者探索未知的视觉世界。它,就是Adobe Photoshop 2022。 无论是Mac还是Windows系统,Photoshop 2022都以其卓越的兼容性&a…

mysql数据库操作小寄巧

目录 json字段查询时间相关只有日期只有时间又有时间又有日期时间比较时间运算 某字段同的取最新数据(软性的新数据覆盖旧数据查找)sql_modeonly_full_group_by的解决办法优化思路 json字段查询 查询某个json字段(xx)的某个属性下…

从http到websocket

阅读本文之前,你最好已经做过一些websocket的简单应用 从http到websocket HTTP101HTTP 轮询、长轮询和流化其他技术1. 服务器发送事件2. SPDY3. web实时通信 互联网简史web和httpWebsocket协议1. 简介2. 初始握手3. 计算响应健值4. 消息格式5. WebSocket关闭握手 实…

Python复合型数据避坑指南

目录 前言 列表(Lists) 1. 修改可变对象 2. 浅拷贝和深拷贝 元组(Tuples) 集合(Sets) 字典(Dictionaries) 1. 键值唯一性 2. 键的类型 实际应用场景 1. 数据分析与清洗 2. 网络…

SDR架构 (一)为什么基带有I和Q路?

我之前做过自己的RTL-SDR。一直有一个疑惑。为啥rtl2832u芯片有一对差分I路,还有一对差分Q路。差分很好理解是为了抗干扰,但为啥要I和Q呢?并且我也知道不少人在自己修改的时候,保留I路对接在r820t2(跟原版一样&#xf…

CentOS8 同步时间chrony ntpdate已无法使用

CentOS8系统中,原有的时间同步服务 ntp/ntpdate服务已经无法使用,使用yum安装,提示已不存在。 [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) [rootlocalhost ~]# yum install ntp 上次元数据过期检查…

深入理解Linux线程(LWP):概念、结构与实现机制(2)

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:会いたい—Naomile 1:12━━━━━━️💟──────── 4:59 🔄 ◀️ ⏸ ▶️ ☰ &a…

2024年经典【自动化面试题】附答案

一、请描述一下自动化测试流程? 自动化测试流程一般可以分为以下七步: 编写自动化测试计划; 设计自动化测试用例; 编写自动化测试框架和脚本; 调试并维护脚本; 无人值守测试; 后期脚本维…

LeetCode 2581.统计可能的树根数目:换根DP(树形DP)

【LetMeFly】2581.统计可能的树根数目:换根DP(树形DP) 力扣题目链接:https://leetcode.cn/problems/count-number-of-possible-root-nodes/ Alice 有一棵 n 个节点的树,节点编号为 0 到 n - 1 。树用一个长度为 n - 1 的二维整数数组 edges…

基于springboot实现图书馆管理系统项目【项目源码+论文说明】

基于springboot实现图书馆管理系统演示 摘要 电脑的出现是一个时代的进步,不仅仅帮助人们解决了一些数学上的难题,如今电脑的出现,更加方便了人们在工作和生活中对于一些事物的处理。应用的越来越广泛,通过互联网我们可以更方便地…

C++用临时对象构造新对象

C用临时对象构造新对象 //用临时对象构造同类型的新对象&#xff0c;该临时对象不产生&#xff1b; // 直接用生成临时对象的方法构造新对象&#xff0c;这是编译器对代码的优化&#xff0c;效率更高 #include<iostream> using namespace std; class MyClass { public:…

2024最新性能测试面试题(带答案)

一、性能测试开展过程&#xff1a; 答&#xff1a;第一步&#xff1a;找产品沟通哪些接口需要压测&#xff0c;需要达到什么样的预期值(TPS和响应时间) 第二步&#xff1a;编写测试计划&#xff0c;人员、时间周期、工具 第三步&#xff1a;环境搭建 第四步&#xff1a;造数…

若依前后端分离版本-自动生成代码

听说若依挺好用的&#xff0c;所以来学习一下。 1.下载项目&#xff0c;配置redis,配置mysql,安装npm&#xff08;版本一定要低于16&#xff09; 2.执行sql脚本数据库相关信息 3.启动后端ruoyi-admin的ruoyiApplication 4启动前端 选择terminal 进入ruoyi-ui&#xff0c;执…