HarmonyOS axios上传文件数据传递问题

axios仿造multipart/form-data上传文件,请问如何传递其他参数?

// ArrayBuffer
let formData = new FormData()
let file2 = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
try {
  // 读取
  let stat = fs.lstatSync(filePath);
  let buf2 = new ArrayBuffer(stat.size);
  fs.readSync(file2.fd, buf2); // 以同步方法从流文件读取数据。
  fs.fsyncSync(file2.fd);
  fs.closeSync(file2.fd);
  formData.set('name', 'upload_file');
  formData.set('filename', file2.name);
  formData.set('file', buf2);
  // formData.append('file', file2);
} catch (err) {
  console.info('err:' + JSON.stringify(err));
}

let ss: Record<string, string> = {'upload_file': file2.name}
// 发送请求
axios.post<string, AxiosResponse<string>, FormData>(url, formData, {
  headers: xHeader,
  context: AppUtil.getContext(),
  onUploadProgress: (progressEvent: AxiosProgressEvent): void => {
    console.info(progressEvent && progressEvent.loaded && progressEvent.total ? Math.ceil(progressEvent.loaded / progressEvent.total * 100) + '%' : '0%');
  },
}).then((res: AxiosResponse<string>) => {
  AxiosHttp.handleRespSuccess(res,call);
}).catch((error: AxiosError) => {
  AxiosHttp.handleError(error,call);
})
  • 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.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

上面代码是form表单提交,发现filename等参数无法传递到后台,请问axios框架form表单上传文件,文件名/ 文件类型等参数如何传递?

HarmonyOS
2025-01-10 09:50:13
1.2w浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
superinsect

可以通过修改FormData实例来实现。

FormData介绍:FormData对象是axios内部自定义的类型,用以将数据编译成键值对,以便用来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据 (keyed data)。

import { FormData } from '@ohos/axios'

let formData: FormData = new FormData();
formData.append("username", "Groucho");
formData.append("accountnum", "123456");
formData.append("accountnum", "123456");
formData.append('file', buf2, { filename: 'text.txt', type: 'text/plain'}); //设置多部分表单数据的数据名称和数据类型类型
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

上面的示例创建了一个FormData实例,包含"username"、"accountnum"字段。使用append() 方法时,可以通过第三个可选参数设置多部分表单数据的数据名称和数据类型。

详情可以参考以下链接:https://gitee.com/openharmony-sig/ohos_axios#%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6

分享
微博
QQ
微信
回复
2025-01-10 11:11:45


相关问题
HarmonyOS 数据传递问题
918浏览 • 1回复 待解决
HarmonyOS 关于Provide数据传递问题咨询
794浏览 • 1回复 待解决
HarmonyOS worker间数据传递
458浏览 • 1回复 待解决
HarmonyOS axios上传文件失败
531浏览 • 1回复 待解决
HarmonyOS router.getParams()数据传递
980浏览 • 1回复 待解决
HarmonyOS taskpool数据传问题
973浏览 • 1回复 待解决
HarmonyOS 怎样预制数据库中的文件数据
1145浏览 • 1回复 待解决
xml文件数据解析 ,都有哪些步骤?
1236浏览 • 1回复 待解决
多hap调用及数据传递,有人知道吗?
1465浏览 • 1回复 待解决
HarmonyOS 上传文件问题
486浏览 • 1回复 待解决
HarmonyOS上传文件问题
950浏览 • 1回复 待解决
HarmonyOS axios如何上传图片
409浏览 • 1回复 待解决
HarmonyOS axios下载文件问题
518浏览 • 1回复 待解决
HarmonyOS axios如何上传多张图片
475浏览 • 1回复 待解决