HarmonyOS 上传应用文件时,是否只支持cache文件夹下的文件?

尝试过filesDir路径下的文件,使用"internal://files/111.txt"会报错,"internal://cache/111.txt"正常,是只支持cache文件夹上传吗?

HarmonyOS
2024-12-27 15:55:18
1276浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
superinsect

目前只支持沙箱路径中cache缓存目录上传下载。

非cache目录下上传下载解决方案:

将公共路径的文件(picker选择),拷贝至沙箱路径中,可完成上传。

Demo:

pickerPhoto() {
  try {
    let options = new picker.PhotoSelectOptions();
    options.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
    options.maxSelectNumber = 1;
    let p = new picker.PhotoViewPicker();

    p.select(options).then((res:picker.PhotoSelectResult) => {
      console.info("tag photo is uri" + res.photoUris[0])
      this.saveFile(res.photoUris[0]);
    })
  } catch (e) {
    console.error("tag select tailed..")
  }
}


async saveFile(uri: string) {
  // 将公共目录的文件,拷贝至沙箱路径
  let destDist = getContext(this).cacheDir + "/test.png";

  let src = fs.openSync(uri, fs.OpenMode.READ_ONLY);
  let dst = fs.openSync(destDist, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  fs.copyFileSync(src.fd, dst.fd);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
分享
微博
QQ
微信
回复
2024-12-27 18:40:03


相关问题
HarmonyOS 如何解压gzip到某个文件夹下
710浏览 • 1回复 待解决
应用文件分享功能介绍
2695浏览 • 0回复 待解决
HarmonyOS 应用文件分享-读写权限咨询
1319浏览 • 1回复 待解决
ArkTS应用文件分享报错,code:16000050
3600浏览 • 1回复 待解决
HarmonyOS 文件上传无法解析文件地址
911浏览 • 1回复 待解决
HarmonyOS 上传文件demo
862浏览 • 1回复 待解决