uniapp——APP读取bin文件,解析文件的数据内容(二)

文章目录

    • 读取bin文件内容,发送给蓝牙设备;
      • 上传文件返回数据格式
      • 通过URL路径获取文件对象,读取文件的数据内容
      • file对象返回数据格式

读取bin文件内容,发送给蓝牙设备;

上传文件,根据返回路径,解析文件内容;发送给蓝牙设备;


上传文件返回数据格式

{
    "data": [
        {
            "size": 98036,
            "type": "application/macbinary",
            "tempFilePath": "_doc/uniapp_temp/1.0.44.bin",
            "name": "1.0.44.bin",
            "fileType": "file"
        }
    ],
    "type": "choose"
}

通过URL路径获取文件对象,读取文件的数据内容

  • 例读取文件路径:_doc/uniapp_temp/B1.1.2.bin
/**
 * @description 根据文件路径,读取文件数据内容
 * @param {String} filePath 文件路径
 * @returns {Object} 
 */
const getFileSystemByArrayBuffer = (filePath) => {
	return new Promise((resolve, reject) => {
		plus.io.resolveLocalFileSystemURL(filePath, (entry) => {
			// 可通过entry对象操作文件 
			entry.file((file) => {
				// 创建读取文件对象 创建读取文件对象 
				const fileReader = new plus.io.FileReader();
				
				// 以URL编码格式读取文件数据内容 读取文件的数据内容,并将数据内容进行URL编码
				fileReader.readAsDataURL(file);
				
				fileReader.onload = (evt) => {
					let strs = evt.target.result;
					// 将 Base64 字符串转成 ArrayBuffer 对象
					let arrayBuffer = uni.base64ToArrayBuffer(strs);
					
					// 根据个人所需,处理业务逻辑,这里返回 ArrayBuffer
					resolve({
						arrayBuffer
					});
				}
				fileReader.onerror = (err) => {
					console.log('文件读取失败');
					reject(err);
				}
			})
		})
	})
}

file对象返回数据格式

{
    "size": 98036,
    "type": "application/macbinary",
    "name": "1.0.44.bin",
    "lastModifiedDate": "2024-12-25T09:53:29.089Z",
    "fullPath": "/var/mobile/Containers/Data/Application/2361ED5xxxxx/Documents/Pandora/apps/HBuilder/doc/uniapp_temp/1.0.44.bin"
}

http://www.niftyadmin.cn/n/5800229.html

相关文章

【zookeeper核心源码解析】第四课:客户端与服务端读写的io核心流程

系列文章目录 【zookeeper核心源码解析】第一课:zk启动类核心流程序列图 【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程 【zookeeper核心源码解析】第三课:leader与follower何时开始同步&#…

Leetcode经典题20--长度最小的子数组

题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 输入输出示例 输入&…

Java CompletableFuture 的一些高级用法

在 Java 8 中,CompletableFuture 提供了一种非常强大的方式来处理异步编程,它使得编写非阻塞代码变得更加简单和灵活。相比传统的 Future,CompletableFuture 可以让你在异步操作完成后,执行多个后续操作(如回调、合并任…

Hive其十,优化和数据倾斜

目录 Hive优化 1、开启本地模式 2、explain分析SQL语句 3、修改Fetch操作 4、开启hive的严格模式【提高了安全性】 5、JVM重用 6、分区、分桶以及压缩 7、合理设置map和reduce的数量 合理设置map数量: 设置合理的reducer的个数 8、设置并行执行 9、CBO优…

在线excel编辑(luckysheet)

项目地址:Luckysheet: 🚀Luckysheet ,一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源。 可以下载项目使用npm安装运行,也可以用cdn 加载excel文件(使用luckyexcel): …

【机器学习】从流动到恒常,无穷中归一:积分的数学诗意

文章目录 微积分基础:理解变化与累积的数学前言一、积分概述与基础概念1.1 积分的定义与重要性1.1.1 积分的基本组成1.1.2 积分在机器学习中的应用 1.2 积分的历史与发展 二、积分的基本概念与计算2.1 不定积分2.1.1 不定积分的定义2.1.2 不定积分的计算方法2.1.3 实…

Python|Pyppeteer实现自动化获取reCaptcha验证码图片以及提示词(29)

前言 本文是该专栏的第29篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 本文,是笔者推出“自动化破解reCaptcha验证码系列”的第二篇,对通过自动化解决“reCaptcha验证码”感兴趣的同学,千万别错过。 文章《Python|Pyppeteer实现全自动化触发reCaptcha验证…

python中使用selenium执行组合快捷键ctrl+v不生效问题

在执行ctrlv进行粘贴时,绑定一个页面上的元素对象(无论元素对象是否是引用过期或者是粘贴的目标文本区,但前提需要粘贴的目标文本区获取焦点)执行ctrlv后可以生效。执行粘贴组合快捷键(ctrlv)的示例代码 se…