收藏
回答

fs.write保存后台返回的excel文件二进制数据,为什么wx.saveFile报文件不存在?

关键代码如下所示:

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将临时文件保存时报错:errMsg"saveFile:fail tempFilePath file not exist"

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

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

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

1 个回答

登录 后发表内容
问题标签