new FormData 同时发送表单 json 以及文件二进制流

需要新增时同时发送表单 json 以及对应的文件即可使用以下方法传参

let formDataParams = new FormData();

首先通过 new FormData() 创建你需要最后发送的表单

接着将你的对象 json 存储,注意使用 new Blob 创建大表单转换成 json 格式。以下是一个封装示例:

  // 转换 FormData 数据 => json
  const transitionFormDataParams = (value: any): Blob => {
    return new Blob([JSON.stringify(value)], { type: "application/json" });
  };

通过 FormData 的 append 方法存入表单

    let project = { ...uploadGetTableRowInfo };
    formData.append("project", transitionFormDataParams(project));

 接着处理文件,一般是 xlsx,pdf,xls 等等

我使用的是 antd design 的 upload 组件

 const operateRowUploadFile = async ({ file }: any): Promise<void> => {
  
setTableRowFiles((beforeValue) => [...beforeValue, file]);

 在这里我将所有的 File 文件存储到 useState 中

  tableRowFiles.forEach((item) => formData.append("files", item));

接着发送的同时将所有的文件再次添加到 FormData 中

最后实际发送的参数效果如下:

查看源代码:

时小记,终有成。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 22:20:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 22:20:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 22:20:01       87 阅读
  4. Python语言-面向对象

    2024-01-06 22:20:01       96 阅读

热门阅读

  1. 前端cdn、ajax、code等加速

    2024-01-06 22:20:01       69 阅读
  2. vi和vim的使用

    2024-01-06 22:20:01       62 阅读
  3. 「HDLBits题解」Wire4

    2024-01-06 22:20:01       70 阅读
  4. 字符编码类型有哪些mysql中编码类型的定义

    2024-01-06 22:20:01       65 阅读
  5. SEW多轴变频MOVIAXIS控制说明

    2024-01-06 22:20:01       62 阅读
  6. 剑指offer题解合集——Week3day2

    2024-01-06 22:20:01       73 阅读
  7. 问题 F: 分巧克力

    2024-01-06 22:20:01       58 阅读
  8. Oracle START WITH 递归语句的使用方法及示例

    2024-01-06 22:20:01       61 阅读