Superagent:PUT-ing 多部分表单数据

Superagent: PUT-ing multipart form data

是否可以使用多部分表单数据执行 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")

如果我执行 post,它会起作用。不同之处在于内容类型。成功 post 请求后,Content-Type 为 multipart/form-data; boundary=------WebKitFormBoundaryXg34NkBFcYWq60mH.

如果我手动设置这个,我怎么知道边界应该是什么?好像是Superagent自动生成的

不,由于 PHP 中的潜在限制,无法使用内容类型 multipart/form-data 执行 PUT 请求,如下所述:https://bugs.php.net/bug.php?id=55815

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

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

If I were to set this manually how would I know what the boundary should be? It seems to be automatically generated by Superagent.

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