HarmonyOS 鸿蒙Next 上传应用文件时,是否只支持cache文件夹下的文件?
HarmonyOS 鸿蒙Next 上传应用文件时,是否只支持cache文件夹下的文件?
尝试过filesDir路径下的文件,使用"internal://files/111.txt"会报错,"internal://cache/111.txt"正常,是只支持cache文件夹上传吗?
2 回复
目前只支持沙箱路径中cache缓存目录上传下载。
非cache目录下上传下载解决方案:将公共路径的文件(picker选择),拷贝至沙箱路径中,可完成上传。
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("txy photo is uri" + res.photoUris[0])
this.saveFile(res.photoUris[0]);
})
} catch (e) {
console.error("txy 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);
}
更多关于HarmonyOS 鸿蒙Next 上传应用文件时,是否只支持cache文件夹下的文件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS 鸿蒙Next系统中,上传应用文件时并非只支持cache文件夹下的文件。鸿蒙系统提供了多种文件访问和存储机制,允许应用在不同目录下读写文件,包括但不限于cache目录。
具体而言,除了cache文件夹,应用通常还可以访问其专属的data目录,用于存储用户数据、配置文件等。此外,根据应用的需求和权限设置,它可能还可以访问外部存储(如SD卡),以及通过特定的API接口与其他应用共享文件。
上传文件时,应用可以选择从任何它有权限访问的目录中读取文件,并上传到指定的目标位置。因此,在HarmonyOS 鸿蒙Next上,上传应用文件不仅限于cache文件夹下的文件。
如果开发者在上传文件时遇到权限问题或路径错误,应检查应用的权限声明和文件路径设置是否正确。确保应用已请求并获得了必要的存储权限,且文件路径指向了正确的存储位置。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html