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);
})

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

HarmonyOS
1天前
浏览
收藏 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'}); //设置多部分表单数据的数据名称和数据类型类型

上面的示例创建了一个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
微信
回复
1天前
相关问题
HarmonyOS 数据传递问题
591浏览 • 1回复 待解决
HarmonyOS 关于Provide数据传递问题咨询
545浏览 • 1回复 待解决
HarmonyOS worker间数据传递
210浏览 • 1回复 待解决
HarmonyOS axios上传文件失败
129浏览 • 1回复 待解决
HarmonyOS router.getParams()数据传递
649浏览 • 1回复 待解决
HarmonyOS taskpool数据传问题
635浏览 • 1回复 待解决
xml文件数据解析 ,都有哪些步骤?
924浏览 • 1回复 待解决
HarmonyOS 上传文件问题
212浏览 • 1回复 待解决
HarmonyOS axios如何上传图片
113浏览 • 1回复 待解决
HarmonyOS上传文件问题
688浏览 • 1回复 待解决
多hap调用及数据传递,有人知道吗?
1159浏览 • 1回复 待解决
HarmonyOS axios下载文件问题
25浏览 • 1回复 待解决
HarmonyOS axios如何上传多张图片
136浏览 • 1回复 待解决