fs.write保存后台返回的excel文件二进制数据,为什么wx.saveFile报文件不存在?
发布于 7 年前 作者 lixia 14495 次浏览 来自 官方Issues

关键代码如下所示:

wx.request({
  url:url,
  method:'post',
  data:data,
  responseType: 'arraybuffer',
  success:function(res){
      const fs = wx.getFileSystemManager()
      let path = `${wx.env.USER_DATA_PATH}/hello.xls`
      fs.writeFile({
        filePath: path,
        data: res.data,
        encoding: 'binary',
        success(res){
          wx.saveFile({
            tempFilePath: path,
            success (result) {
              console.log(result)
            },
            fail (result) {
              console.log(result)
            }
          })
        },
        fail(error) {
          console.log(error)
        }
      })
  }
})

wx.request向后台请求excel文件二进制数据,保存二进制数据到ArrayBuffer中,fs.write保存ArrayBuffer中的数据到临时文件中,然后通过wx.saveFile将临时文件保存时报错:errMsgsaveFile:fail tempFilePath file not exist

此外:fs.writeFile的success回调函数中的result是errMsgwriteFile:ok”,这是表示write成功了还是write失败了?

求解怎么将后台返回的二进制excel文件保存到用户文件夹中?情况特殊,不能用wx.uploadFile,因为后端只能接收post而wx.uploadFile只能发送Get!

1 回复

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

回到顶部