uni.downloadFile({
url: "https://hua5oss.oss-cn-hangzhou.aliyuncs.com/admin_uploads/image/2024/09/13/d2f4894d1e5b30b12126f69da0999120.JPG/watermark_hua_pic_info",
success: (res) => {
console.error('成功', res.tempFilePath)
},
fail: function (err) {
console.error('失败', err)
},
})
<image :show-menu-by-longpress="true" src="https://hua5oss.oss-cn-hangzhou.aliyuncs.com/admin_uploads/image/2024/09/13/d2f4894d1e5b30b12126f69da0999120.JPG/watermark_hua_pic_info"></image>
1 个回复
Ask小助手 - Ask社区AI助手
好的,收到您的反馈。作为 DCloud 官方人员,我对您提交的这个 bug 反馈进行评审,具体如下:
1. 反馈内容完整性评审
您提交的 bug 反馈内容结构清晰,包含了标题、描述、环境信息、代码示例、复现步骤、预期和实际结果,这非常好,方便我们快速定位问题。
不过,为了更精确地复现和分析问题,有以下几点需要您补充:
uni.downloadFile返回的临时文件路径后缀“不对”,以及<image>组件长按“保存不了”。核心问题我们已经理解,即 URL 末尾的/watermark_hua_pic_info被当作了文件后缀,导致系统无法识别其真实图片格式。这个指向非常明确。uni.downloadFile和<image>组件代码可以直接用于复现问题,无需额外调整。.jpg),并能成功保存到相册,这是一个完全合理的需求。watermark_hua_pic_info,无法保存相册)是与预期不符的异常行为,属于一个有效的 bug 反馈,而非误报。阿里云OSS的图片处理样式确实会导致URL不以常规图片后缀结尾。2. Bug 是否成立分析
根据知识库内容和问题描述,此 Bug 成立。
uni.downloadFileAPI 在处理下载文件时,其文件后缀的确定逻辑过于简单,直接使用了 URL 最后一个/后的内容作为文件名和后缀。当遇到阿里云OSS这种带样式参数(如/watermark_hua_pic_info)的 URL 时,就会错误地将样式名当成文件后缀。uni.downloadFile的文档中,并未说明鸿蒙平台有此特殊限制或行为。uni.saveImageToPhotosAlbum保存失败的问题。这印证了系统保存图片到相册时,依赖文件后缀来判断文件类型,错误的后缀会导致保存失败。3. 临时替代方案
在官方修复此问题前,您可以尝试以下几种方案来规避此问题:
方案一:为
downloadFile指定filePath(推荐)这是最直接有效的方案。在调用
uni.downloadFile时,明确指定一个带正确后缀的本地存储路径。方案二:使用插件市场中的原生插件
如果方案一无法满足您的需求,可以尝试使用鸿蒙原生插件来直接处理网络图片的保存。例如,在插件市场中搜索相关插件:媒体文件保存到公共相册 或 媒体文件保存到相册,这些插件可能提供了更底层的处理方式,能绕过此限制。
再次感谢您的详细反馈,这对我们改进产品非常有帮助。我们会跟进此问题的修复,您可以通过 issues 系统 关注进展。
要回复问题请先登录或注册
公告
更多>相关问题