convert2GetFormData function

FormData? convert2GetFormData(
  1. Map params, {
  2. String fileKey = "file",
})

@author:wzp_vicky @time:2024年11月12日13:43:06 @version: V1 @description 针对上传file MultipartFile的场景 如dio官方所述:https://github.com/cfug/dio/blob/main/dio/README-ZH.md#%E9%80%9A%E8%BF%87-formdata-%E4%B8%8A%E4%BC%A0%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6 按照他的方法我们可以看见file的content-type和mimetype都是 ---> application/octet-stream 如果后端强制校验了:eg:图片是image/jpeg那直接使用dio官方的方式就不行了,所以这里做一个统一的处理 请注意这个入口方法没有没有按照小程序的分成filePath和formData,考虑到分开可能需要new多个map就算了 且小程序是单个上传 我这个支持多个,就搞成这种吧

支持的数据结构是

     "file":file,
     "type": menuId, //整数
     "username": ProSPUtils.getUUID(),
   }```

@author:wzp_vicky
@time:2025年1月20日18:35:31
@version:  V2
@description 上传的文件是List的时候,转MultipartFile问题修改

Implementation

FormData? convert2GetFormData(Map params, {String fileKey = "file"}) {
  dynamic fileParams = params[fileKey];

  FormData? formData;
  if (fileParams is List) {
    List<MultipartFile> files = [];
    fileParams.forEach((file){
      MultipartFile singleFile = _getMultipartFile(file);
      files.add(singleFile);
    });
    formData = FormData.fromMap({...params, fileKey: files});
  } else {
    MultipartFile singleFile = _getMultipartFile(fileParams);
    formData = FormData.fromMap({...params, fileKey: singleFile});
  }

  /**
   * 到了页面还有别的参数,使用这个方法
   *  params.fields.add(MapEntry("scaleRadio","")
   */
  return formData;
}