收藏
回答

IOS系统下wx.cloud.downloadFile()获取的临时文件无法读取,安卓没问题

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug iOS 12.4.7 iphone 6Plus 7.0.12

文件存储在云开发的“存储”里,通过wx.cloud.downloadFile()获取到文件的临时路径,然后读取该临时路径文件内容,在安卓手机上一切正常,但是在IOS手机上临时路径文件名最后面多了一串东西“?skip_domain_check=true”导致失败。PS:截掉多出来的这一串东西也一样不行。

源代码片段如下:

        wx.cloud.downloadFile({

          fileID: 'cloud://hiker2556-bb65ce.6869-hiker2556-bb65ce-1256221002/Handband_ota1.1.5.bin',

          success: res => {

            console.log("临时文件路径:",res.tempFilePath)

          },

          fail: err => {

            console.log('error:',err)

          }

        })


回答关注问题邀请回答
收藏

2 个回答

  •           
              
    06-20

    楼主有解决方案了吗,最近遇到同样的问题了

    06-20
    有用 1
    回复 3
    • 木了@一亮
      木了@一亮
      06-22
      没有,只能改成手动从微信里选择文件,可能跟IOS系统有关,去年同样的代码在iphone5s 手机上还是OK的。
      06-22
      回复
    •           
                
      06-22回复木了@一亮
      昨天研究了个方法,先wx.cloud.getTempFileURL获取临时链接,再使用wx.downloadFile下载临时链接文件,最后再readFile就ok了。这样就等于是普通开发的那套流程,不是云开发的下载了。
      06-22
      回复
    • 木了@一亮
      木了@一亮
      06-23回复          
      也是个很不错的方法呀,云开发的云存储还是用上了
      06-23
      回复
  • 英忠通信
    英忠通信
    06-12

    没看明白,是不是已经用指令wx.cloud.downloadFile下载到手机端,再打开(用什么指令打开)时出错了,还是下载时出错?

    06-12
    有用
    回复 1
    • 木了@一亮
      木了@一亮
      06-15
      您好!我再补充一下代码,是已经用指令wx.cloud.downloadFile下载到手机端,用wx.getFileSystemManager().readFileSync或者wx.getFileSystemManager().readFile时出错。


              wx.cloud.downloadFile({
                fileID: FileID,
                success: res => {
                  console.log("临时文件路径:",res.tempFilePath)   
                    var file_path = res.tempFilePath
                      try {
          var filebuffer = wx.getFileSystemManager().readFileSync(file_path, 'hex')
          if (filebuffer) {
            return filebuffer
          }
        } catch (e) {
          wx.getFileSystemManager().readFile({
            filePath:file_path,
            encoding:'hex',
            success: res => {
              var filebuffer =res.data
              return filebuffer
            },
            fail: console.error
          })
        }
                   
                },
                fail: err => {
                  // handle error
                  console.log('error:',err)
                }
              })
      06-15
      回复
登录 后发表内容
问题标签