UNI-APP_APP临时文件路径转文件对象plus.io.resolveLocalFileSystemURL,文件对象转文件流plus.io.FileReader

res.tempFilePath 临时路径
_doc/uniapp_temp_1721876002122/recorder/1721877299550.mp3

官方文档:https://www.html5plus.org/doc/zh_cn/io.html

plus.io.getAudioInfo({
	filePath: res.tempFilePath,
	success: ree => {
		console.log('文件信息::', ree)
	}
})

plus.io.resolveLocalFileSystemURL(res.tempFilePath, entry => {
	entry.file(file => {
		console.log("文件对象:", file)
		
		const reader = new plus.io.FileReader()
		reader.onload = function(evt) {
			const fileData = evt.target.result
			console.log("文件流数据:", fileData)
		}
		
		reader.onerror = function(err) {
			console.error("读取文件流失败:", err.message)
		}
		reader.readAsText(file, 'UTF-8')
		//	reader.readAsDataURL(file, 'UTF-8')
	})
}, err => {
	console.error("获取文件失败:", err.message)
})

适配Android10+设备注意事项:https://ask.dcloud.net.cn/article/36199

### 实现 UniApp 中将本地临时文件路径换为 Base64 编码的方法 在 UniApp 开发中,可以通过 `uni.getFileSystemManager()` 方法实现将本地临时文件路径换为 Base64 编码的功能。以下是具体实现方式: #### 代码示例 ```javascript function handleImageToBase64(tempFilePath) { const fs = uni.getFileSystemManager(); // 获取文件管理器实例 return new Promise((resolve, reject) => { fs.readFile({ filePath: tempFilePath, // 文件的临时路径 encoding: 'base64', // 设置编码格式为 base64 success(res) { resolve(`data:image/png;base64,${res.data}`); // 返回完整的 Base64 数据字符串 }, fail(err) { reject(err); } }); }); } // 调用示例 uni.chooseImage({ // 打开相册选择图片 count: 1, success(res) { const tempFilePath = res.tempFilePaths[0]; // 获取选中的图片临时路径 handleImageToBase64(tempFilePath).then(base64Data => { console.log('Base64 编码:', base64Data); // 输出 Base64 编码数据 }).catch(error => { console.error('换失败:', error); // 处理错误情况 }); } }); ``` 上述代码实现了以下功能: - 使用 `uni.chooseImage` 方法打开相册选取一张图片,并获取其临时路径[^1]。 - 利用 `uni.getFileSystemManager().readFile` 方法读取该临时文件的内容,并将其按照指定的编码格式(这里是 `base64`)进行解析[^2]。 - 成功返回的结果是一个包含 Base64 编码的数据 URI 字符串。 #### 注意事项 - 如果需要支持多张图片,则需循环调用 `handleImageToBase64` 函数并将每张图片的 Base64 结果存储至数组中[^3]。 - 对于 H5 平台,某些情况下可能无法直接使用临时路径完成操作,因此建议先验证环境兼容性后再实施方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值