HarmonyOS 有没有对应Java语言File的对象

Java有直接传File对象到后端接口的,HarmonyOS应该用哪个api比较合适

HarmonyOS
6天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

上传文件到后端相关接口可通过网络库axios实现

参考:https://gitee.com/openharmony-sig/ohos_axios#%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E7%A4%BA%E4%BE%8B

import axios from '@ohos/axios'
import { FormData } from '@ohos/axios'
import fs from '@ohos.file.fs';

// ArrayBuffer
let formData = new FormData()
let cacheDir = getContext(this).cacheDir
try {
  // 写入
  let path = cacheDir + '/hello.txt';
  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, 'hello.txt');
} catch (err) {
  console.info('err:' + JSON.stringify(err));
}
// 发送请求
axios.post<string, AxiosResponse<string>, FormData>(this.uploadUrl, 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));
})
分享
微博
QQ
微信
回复
6天前
相关问题
HarmonyOS 有没有类似JavaClss类实现
66浏览 • 1回复 待解决
鸿蒙有没有clipToPadding所对应属性
4960浏览 • 1回复 待解决
HarmonyOS java PathMeasure 对应api
117浏览 • 1回复 待解决
鸿蒙java有没有控制4G/5G开关接口
5200浏览 • 1回复 待解决
HarmonyOS Bean对象如何删除对应key
141浏览 • 1回复 待解决
使用JAVA语言开发App能否获取手环心率
2821浏览 • 1回复 待解决