uni.canvasToTempFilePath 截图没有后缀名 blob路径

博客提及后端拼接完成,但信息较少。推测可能是后端开发中某部分工作达成拼接成果,与后端开发相关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

然后端拼上了

### 如何在 UniApp 中将通过 `uni.downloadFile` 下载的 Blob 文件保存到本地 在 UniApp 开发环境中,可以通过调用 `uni.downloadFile` 方法下载文件,并将其存储至设备的本地缓存中。以下是具体实现方式: #### 使用 `uni.downloadFile` 和 `uni.saveFile` 1. **下载文件** 调用 `uni.downloadFile` 方法可以发起 HTTP GET 请求来下载目标资源。此方法返回临时路径,用于后续操作。 2. **保存文件** 将上述获得的临时路径传递给 `uni.saveFile` 方法即可完成文件从临时目录向本地永久存储区的迁移[^1]。 下面是完整的代码示例: ```javascript // 定义要下载的目标 URL const downloadUrl = 'https://example.com/file.pdf'; // 发起下载请求 uni.downloadFile({ url: downloadUrl, // 替换为目标文件的真实链接 success(res) { if (res.statusCode === 200 && res.tempFilePath) { const tempFilePath = res.tempFilePath; // 调用 saveFile 接口保存文件 uni.saveFile({ tempFilePath, success(saveRes) { console.log('文件已成功保存:', saveRes.savedFilePath); alert(`文件已保存至 ${saveRes.savedFilePath}`); }, fail(err) { console.error('保存失败', err); alert('保存文件时发生错误'); } }); } else { console.error('下载失败', res.errMsg || '未知原因'); alert('无法下载指定文件'); } }, fail(err) { console.error('下载过程中出现问题', err); alert('网络异常,请稍后再试'); } }); ``` #### 处理 Android 平台 `.bin` 后缀问题 如果遇到 Android 设备上下载后的文件自动附加 `.bin` 扩展名的情况,则需注意服务器响应头中的 Content-Type 设置可能存在问题。由于服务端通常会允许修改上传接口的内容类型(否则会影响正常功能),因此推荐客户端自行处理扩展名逻辑[^3]。 解决策略如下所示: - 在前端手动解析原始文件名称; - 如果检测到额外追加了期望的后缀,则重新命名该文件。 更新后的脚本片段如下: ```javascript function renameFile(savedPath, originalName) { let newPath; try { // 假设原名为 example.docx.bin 需要去掉最后多余的 .bin const baseFileName = originalName.replace(/\.bin$/, ''); // 构造新的完整路径字符串 newPath = `${savedPath.substring(0, savedPath.lastIndexOf('/'))}/${baseFileName}`; // 实际执行重命名动作 plus.io.resolveLocalFileSystemURL(savedPath, function(entry){ entry.moveTo(null, baseFileName, ()=>{},()=>{}); },()=>{}); } catch(e) { console.warn('未能修正文件名', e.message); } return newPath || savedPath; } // 修改之前的回调函数部分... success(saveRes) { const correctedPath = renameFile(saveRes.savedFilePath, 'your_original_filename_with_extension'); console.log('最终调整过的文件位置:', correctedPath); } ``` 以上即为利用 UniApp 的 API 来达成多平台一致性的文件下载与持久化储存的方法说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值