javascript - 是否可以发送内容类型为 multipart/form-data(文件)的 Http post 请求和带有数据参数的 json 对象?
问题描述
我想允许用户上传文件。他们可以设置标题、到期日期,并且可以从最后选择文件数量,然后单击上传按钮并将其全部发送到服务器。
然后我插入一个新文档,其中包含他们发送的详细信息以及处理他们附加的文件的保存。
以下是插入文档的示例:
// documents collections:
{
title: "Some contract",
expiration_date: DATE,
files: [
"uploads/1.jpg",
"uploads/1.docx",
"uploads/1.pdf"
]
}
我能够允许用户使用强大的 node.js 模块成功发送和上传这些文件。
我能够允许用户使用正文解析器发送数据参数,然后在req.body
对象中访问它们。
但是,我不能在同一个请求中同时拥有它们。
是什么让我认为我需要允许在单个请求中上传,然后将其文件(路径)返回给客户端,然后使用 json 对象参数发送另一个 http post 请求。
但这似乎太复杂了。但是让用户先上传文件,在上传文件的同时,他可以继续填写表格,这也是一件好事。
解决方案
您不能在同一个请求中发送这两种类型,因为其中一种具有标头Content-Type: multipart/form-data
,而 json 请求具有标头Content-Type: application/json
。您可以通过使用多部分表单数据、将您的 json 字符串化并将其添加为文本字段来解决这个问题,但我强烈建议您不要这样做。
多部分表单数据确实支持将多个文件添加到请求表单中的单个键
推荐阅读
- r - 如何将 R styleR 与 pre-commit 和 renv 一起使用
- python-2.7 - 仅从 Python 2.7 中的文本小部件中获取文本而不是任何尾随空行
- c++ - 为什么音频文件的相对路径不适用于子文件夹?
- directus - 下载存储文件时如何修复 Directus 错误代码 3
- r - 如何:两个水平条形图“彼此重叠”
- javascript - 角色未添加到玩家
- python - 表单提交在带有 python 2.7 的 Django 1.11 中不起作用
- r - 如何从 2 个向量返回多个名称
- input - 如何将 Fontawesome 图标放在输入“值”字段中?
- lua - 从 Roblox studio 上的服务器启动本地脚本