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

文章目录

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

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

上传文件返回数据格式

javascript 复制代码
{
    "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
javascript 复制代码
/**
 * @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对象返回数据格式

javascript 复制代码
{
    "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"
}