HarmonyOS Formdata上传文件,总是提示文件为空?

let cacheDir = Foundation.WPFApplication().getContext().cacheDir // 对应位置为/data/storage/el2/base/haps/entry/cache
let path = argus-online-20240528165640617.glog 
let file = fs.openSync(path, fs.OpenMode.CREATE);
// 复制文件到缓存目录下
let name = 'alex023.glog'
let _path = cacheDir + '/' + name;
fs.copyFileSync(file.fd, _path)
// 读取
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);

axios.post('src', formData, {
  headers: {
    'Content-Type': `multipart/form-data;boundary=---Boundary${Foundation.WPFTime().systemCurrentTimeMillis()}`,
    'x-argus-app-id': 'app_driver',
    'x-app-platform': 'ios',
  },
  context: Foundation.WPFApplication().getContext() // 这里就是common.Context
}).then(v => {
  console.info(JSON.stringify(v))
}).catch(v => {
  console.info(JSON.stringify(v))
})

上面的代码执行后,后端拿不到form-data中的file, 显示为一个空文件;

阅读 540
1 个回答

当前axios库下载只支持get方式 如果非要使用post方式下载可以使用:rcp、http,或者ohos.request 其中rcp和http相比,更推荐rcp, 因为ohos.net.http原生库能力暂不会再演进或新增其他功能,rcp能力在接口易用性、性能、功耗方面比http网络库好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏