收藏
回答

writeFile调用已经成功,但是调用saveFile为何失败了?

开发的时候,通过接口GET请求后端返回的arraybuffer表格数据,写入文件调用是成功的,但是保存调用失败了,报错:saveFile:fail tempFilePath file not exist

我在下面调用openDocument接口就可以通过WPS打开文件。

调试基础库:2.30.2

// 导出文件接口
export function exportFile() {
  return GET('***/***/front/testExport', {}, { responseType: 'arraybuffer' })
}

exportFile().then(res => {
  const fs = wx.getFileSystemManager()
  fs.writeFile({
    filePath: wx.env.USER_DATA_PATH + '/测试报表.xlsx',
    data: res,
    encoding: 'binary',
    success() {
      fs.saveFile({
        tempFilePath: wx.env.USER_DATA_PATH + '/测试报表.xlsx',
        success(saveRes) {
          console.log(saveRes)
        },
        fail(saveErr) {
          // 这里报错
          console.log(saveErr)
        }
      })
      wx.openDocument({
        filePath: wx.env.USER_DATA_PATH + '/测试报表.xlsx',
        showMenu: true, // 显示右上角菜单
        success(x) {
          // 打开成功
          console.log('successfun', x)
        }
      })
    },
    fail(fileErr) {
      console.log(fileErr)
    }
  })
})
回答关注问题邀请回答
收藏

2 个回答

  • O...K...O
    O...K...O
    2023-05-08

    请问下这个问题解决了吗

    2023-05-08
    有用
    回复
  • 微盟
    微盟
    2023-03-10

    路径错误:调用saveFile时需要指定正确的文件路径,如果路径错误或者不存在,就会导致调用失败。

    权限问题:如果文件路径所在的目录没有写入权限,就会导致调用saveFile失败。

    数据格式问题:调用saveFile时需要将数据转换为正确的格式,如果数据格式不正确,就会导致调用失败。

    内存不足:如果系统内存不足,就会导致调用saveFile失败。


    2023-03-10
    有用
    回复
登录 后发表内容