代码之家  ›  专栏  ›  技术社区  ›  Raz Buchnik

是否可以发送内容类型为multipart/form data(files)的http post请求和带有数据参数的json对象?

  •  0
  • Raz Buchnik  · 技术社区  · 7 年前

    我想允许用户上传文档。他们可以设置标题,到期日期,并可以选择文件的数量从他们的终端,并点击上传按钮,并将其全部发送到服务器。

    然后我插入一个新的文档,其中包含他们发送的详细信息,并处理他们附加的文件的保存。

    下面是插入的文档示例:

    // documents collections: 
    {
      title: "Some contract",
      expiration_date: DATE,
      files: [
        "uploads/1.jpg",
        "uploads/1.docx",
        "uploads/1.pdf"
      ]
    }
    

    我可以让用户发送和上传这些文件成功使用强大的node.js模块。

    我允许用户使用body解析器发送数据参数,然后在 req.body 对象。

    但是我不能让他们两个在同一个要求。

    是什么让我认为我需要在一个单独的请求中允许上传,然后将其文件(路径)返回给客户机,然后用json对象参数发送另一个http post请求。

    但这似乎太复杂了。但是也可以让用户先上传文件,同时上传文件,他可以继续填写表单。

    1 回复  |  直到 7 年前
        1
  •  0
  •   omarwaleed    7 年前

    不能在同一请求中同时发送这两种类型,因为其中一种类型具有头 Content-Type: multipart/form-data json请求有头 Content-Type: application/json . 您可以通过使用多部分表单数据、对json进行字符串化并将其添加为文本字段来解决这个问题,但我强烈建议您不要这样做。
    多部分表单数据确实支持将多个文件添加到请求表单中的单个键中