HarmonyOS 鸿蒙Next axios 文件上传 文件路径问题,这个路径是不是沙箱路径

HarmonyOS 鸿蒙Next axios 文件上传 文件路径问题,这个路径是不是沙箱路径 文件扫描的文件自动保存在这个路径下面 file://com.huawei.hmsapp.hiai/data/storage/el2/base/haps/doc/files/com.demo.hms/DocumentScanner_1741072059663.pdf,用 axios 进行上传,失败 500,要怎么写这个文件路径的上传,还用复制吗

2 回复

// ArrayBuffer let formData = new FormData() try { // 写入 let path = ‘/data/storage/el2/base/haps/doc/files/com.demo.hms/DocumentScanner_1741072059663.pdf’; let file = fs.openSync(path, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE) fs.writeSync(file.fd, “hello, world”); // 以同步方法将数据写入文件 fs.fsyncSync(file.fd); // 以同步方法同步文件数据。 fs.closeSync(file.fd);

// 读取 let file2 = fs.openSync(path, 0o2); let stat = fs.lstatSync(path); let buf2 = new ArrayBuffer(stat.size); fs.readSync(file2.fd, buf2); // 以同步方法从流文件读取数据。 fs.fsyncSync(file2.fd); fs.closeSync(file2.fd);

formData.append(‘file’, buf2); // formData.append(‘file’, buf2, { filename: ‘text.txt’, type: ‘text/plain’}); 设置多部分表单数据的数据名称和数据类型类型 } catch (err) { console.info(‘err:’ + JSON.stringify(err)); } // 发送请求 axios.post<string, AxiosResponse<string>, FormData>(‘https://www.baidu.com’, formData, { headers: { ‘Content-Type’: ‘multipart/form-data’ }, context: getContext(this), onUploadProgress: (progressEvent: AxiosProgressEvent): void => { console.info(progressEvent && progressEvent.loaded && progressEvent.total ? Math.ceil(progressEvent.loaded / progressEvent.total * 100) + ‘%’ : ‘0%’); }, }).then((res: AxiosResponse) => { console.info(“result” + JSON.stringify(res.data)); }).catch((error: AxiosError) => { console.error(“error:” + JSON.stringify(error)); })


[参考文档](https://gitee.com/openharmony-sig/ohos_axios#%E5%BD%93%E4%B8%8A%E4%BC%A0%E7%9A%84%E5%86%85%E5%AE%B9%E4%B8%BAarraybuffer%E6%97%B6%E7%94%A8%E6%B3%95%E5%A6%82%E4%B8%8B)

更多关于HarmonyOS 鸿蒙Next axios 文件上传 文件路径问题,这个路径是不是沙箱路径的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)中,文件上传时使用的路径通常是沙箱路径。鸿蒙系统的应用沙箱机制确保了每个应用的文件存储空间是隔离的,应用只能访问自己的沙箱路径内的文件。沙箱路径通常位于应用的私有目录下,例如/data/storage/el1/bundle/data/storage/el2/bundle。这些路径是应用专属的,其他应用无法直接访问。

在使用axios进行文件上传时,如果文件路径是沙箱路径,系统会自动处理文件的访问权限。开发者不需要额外配置权限即可访问沙箱内的文件。如果需要上传的文件位于沙箱路径外,开发者需要申请相应的文件访问权限,并确保文件路径正确。

总结:鸿蒙系统中,文件上传时使用的路径通常是沙箱路径,应用默认只能访问自己的沙箱路径内的文件。

回到顶部