解决微信小程序云开发ios读取txt文件问题

1、问题描述

最近做毕设的时候发现要读取微信小程序云存储中的txt文件内容,安卓端一切正常,但是ios15就一直不能读取内容。感觉是存储权限的问题,在网上找了很多方法都不行。最后用云函数解决的。

2、代码

这样写安卓没问题 但是ios读取不到文件

getBookText(book_name,readStart,readStep) {
    var data = this.data.allcontent
    wx.cloud.downloadFile({
      fileID: 'cloud://cloud1-0g969ggs31e658ac.636c-cloud1-0g969ggs31e658ac-1309479295/book_file/'+book_name+'.txt'
    }).then(res => {
      let fs = wx.getFileSystemManager()
      let result = fs.readFileSync(res.tempFilePath, "utf-8", readStart,readStep)
      data += result
      this.setData({
        allcontent: data,
        readStart:readStart+readStep,
      })
    }).catch(error => {
      // handle error
      console.log(error);
    })
  },

改进后

getBookText(book_name, readStart, readStep) {
    var data = this.data.allcontent
    wx.cloud.callFunction({
      name: 'readBook',
      data: {
        bookName: book_name,
        readStart:readStart,
        readStep:readStep,
      }
    }).then((resp) => {
      var result = resp.result
      data += result
      this.setData({
        allcontent: data,
        readStart: readStart + readStep,
      })
    }).catch((e) => {
      console.log(e);
      //  wx.hideLoading();
    });
  },

云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {

  const fileID = event.bookName + '.txt'
  const res = await cloud.downloadFile({
    fileID: fileID,
  })
  const buffer = res.fileContent
  return buffer.toString('utf8',event.readStart,event.readStart+event.readStep)
}

这样就可以解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值