2

是否可以使用多部分表单数据进行 PUT 请求?

使用 Superagent,我希望以下内容可以正常工作,但事实并非如此。

var request = Request
  .put("http://localhost:8080/upload_file")
  .field("name", file.name)
  .field("size", file.size)
  .attach("file", file.file, file.file.name)
  .accept("application/json")

如果我发帖,它会起作用。区别在于内容类型。成功发布请求后,Content-Type 为multipart/form-data; boundary=------WebKitFormBoundaryXg34NkBFcYWq60mH.

如果我要手动设置它,我怎么知道边界应该是什么?它似乎是由 Superagent 自动生成的。

4

2 回答 2

1

不,由于此处讨论的 PHP 的潜在限制,无法使用 content-type multipart/form-data 执行 PUT 请求:https ://bugs.php.net/bug.php?id=55815

您可能想看看在 Chekote/symfony 中为 Symfony 完成的“hack”:https ://github.com/Chekote/symfony/commit/dc1279b2e4c0e9cbcb5b7d578891c31dd878b43b

于 2015-08-18T08:50:54.043 回答
1

根据 Tum 的评论,您可能应该做一个 POST。

如果我要手动设置它,我怎么知道边界应该是什么?它似乎是由 Superagent 自动生成的。

您应该让 Superagent 自行管理 - 不要尝试自己设置类型,不要进行类型调用,当它将其设置为多部分本身时,它将包含正确的边界标识符。

于 2015-11-27T17:41:08.070 回答