HarmonyOS request.uploadFile 上传多文件

在使用request.uploadFile实现 multipart/form-data 一个请求上传多个文件,抓包发现,会发起多次请求,每次上传一个文件。

async uploadFile(context: common.UIAbilityContext, func: string, params?: object, method?: http.RequestMethod, expectDataType?: http.HttpDataType): Promise<string> {

  let netUrl = `${NetHelper.getBaseUrl(this.netWork, params)}${func}`;

  let fileName: string = "";
  let fileList = params["fileList"] as string [];
  let files: request.File [] = [];

  for(let filePath of fileList) { // 文件集合
  fileName = filePath.substring(filePath.lastIndexOf("/")+1, filePath.length);
  let parentDir: string | null = FileManager.getParentDir(filePath);
  if (parentDir != FilePathGenerator.cacheDir) {
  FileManager.copyFileSync(filePath, `${FilePathGenerator.cacheDir}/${fileName}`);
}
let suffixIndex = fileName.lastIndexOf(".");
files.push({ filename: fileName, name: fileName, uri:  "internal://cache/" + fileName,
  type: suffixIndex >= 0 ? fileName.substring(suffixIndex + 1, fileName.length) : "" });
}

let uploadConfig: request.UploadConfig = {
  url: netUrl,
  header: headers,
  method: method?.valueOf(),
  files: files,
  data: datas,
};

return new Promise(async (resolve, reject) => {
  try {
    const uploadTask = await request.uploadFile(context, uploadConfig);
    uploadTask.on('complete', (taskStates: Array<request.TaskState>) => {
      logger.debug('taskStates');
      logger.debug('taskStates[0].message:' + taskStates[0].message);
      return resolve(taskStates[0].message);
    });
    uploadTask.on("progress",(receivedSize: number, totalSize: number)=> {
      logger.debug("progress",  `receivedSize: ${receivedSize} totalSize:${totalSize}`);
    });
  } catch (e) {
    logger.error("uploadFile error:", e);
    reject(new RYError("", RYErrorCode.UploadError, e));
  }
})
}
  • 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.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
HarmonyOS
2024-12-24 14:06:13
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zxjiu
分享
微博
QQ
微信
回复1
2024-12-24 16:19:36
相关问题
HarmonyOS request.uploadFile问题
751浏览 • 1回复 待解决
request.uploadFile(context, uploadConfig) 报错
1646浏览 • 1回复 待解决
HarmonyOS request文件上传问题
789浏览 • 1回复 待解决
request上传返回错误码401
1545浏览 • 2回复 待解决
HarmonyOS 录音上传文件
894浏览 • 1回复 待解决
HarmonyOS 上传文件问题
778浏览 • 1回复 待解决