- wx.downloadFile 下载文件返回 tempFilePath 无文件后缀?
前段时间还仅仅是个例,比较少遇到这种问题,大部分场景下都是正常,但最近是好多机型反馈都出现无法保存文件至相册的问题,原因就是 wx.downloadFile 返回的 tempFilePath 没有文件后缀,导致无法保存至相册中。服务器也一直是正常有返回 header 声明的 content-type ,但仍就无法识别。 [图片] 在社区里搜了很多关于这类下载的问题,没有很好的解决方案,官方也没明确说已修复完成。有说通过 wx.downloadFile() 传入指定 filePath 的,自行命名文件后续的。形似于这样的: wx.downloadFile({ url: targetUrl, filePath: wx.env.USER_DATA_PATH + '/xxx.mp4', // 加上文件类型后缀 success(res){ wx.saveVideoToPhotosAlbum({ filePath: res.filePath }) } }); 但查了一下官方相关文档声明(https://developers.weixin.qq.com/miniprogram/dev/framework/ability/file-system.html),发现本地用户文件是有限制的 [图片] 小程序最多可存储空间为 10MB ,也就是说,如果不及时清除历史文件,下载的文件累加起来很容易就超了。无论保存有多少个文件,总和大小不能超过 10MB。否则就会报 “fail the maximum size of the file storage limit is exceeded” 存储空间不足的错误,实践后也确是如此。于是做了一步操作就是每新启一个下载时,都会把历史下载的文件全部删除,稍微缓解了问题。但又会有其他的限制,因为没有设置 filePath 的下载是不限制存储大小的,设置 filePath 后就意味着即使每次都重置存储空间,单次下载的文件大小仍不能超过 10MB,可实际业务场景是会有很多文件超过 10MB 的,只能不设置 filePath 使用默认的 tempFilePath 的方式下载。所以希望官方能处理下为啥给出了正确的 content-type 后 仍然无法识别出文件后缀?
2020-07-11 - 使用wx.downloadFile下载文件得到的tempFile的后缀是bin,为什么?
wx.downloadFile({ url:url1, header: {'content-type':'image/png'}, success: (result)=>{ console.log(result) wx.saveImageToPhotosAlbum({ filePath: result.tempFilePath, success: (res)=>{ console.log('保存成功') }, fail: ()=>{}, complete: ()=>{} }); }, }); } 文件名后缀总是bin,请问为什么?
2020-08-09