在ios版本下,FileSystemManager.saveFile 无法保存临时文件
发布于 6 年前 作者 leiliang 2316 次浏览 来自 问答

https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.saveFile.html

复现片段(取消es6转es5)https://developers.weixin.qq.com/s/vZjPxBmB7Tfk

ipad 4 系统版本13.3.1 微信版本7.0.5

let {
  statusCode,
  tempFilePath
  } = await wx.cloud.downloadFile({ fileID })
  let tmp = tempFilePath.indexOf('?')
  if (tmp != -1) tempFilePath = tempFilePath.slice(0, tmp) 
   //在ios下,下载的临时文件带有skip参数无法保存,会抛出无效参数,因此要做剪裁去掉参数,但是剪裁掉后还是无法保存。再看下面。
  if (statusCode == 200)
  	wx.getFileSystemManager().saveFile({
  	tempFilePath,
  	success: res => console.log('success',res),
    	fail: res => console.log('fail', res)
  //在这里会抛出一个saveFile:fail move to savedFilePath fail。直接调用wx.saveFile接口也一样。
//按照设计是移动临时文件保存,但在这里会移动失败。这错误码在文档里面也没有特别说明。
})

以上两个问题都只存在于ios版本,具体是ipad,android下,两个问题都不存在。

代码可以直接运行复现。只需给一个fileID。

2 回复

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

如果是直接在小程序端上传的临时文件移动保存没有问题,但从wx.cloud.download下载的临时文件就完全无法保存了。我的需求是做图片拦截保存临时文件,避免不必要的重复加载,在android下运行良好。

这个bug我也找了很久,望重视。

回到顶部