【问题标题】:Symfony 3, RESTAPI, PUT, fileupload [duplicate]Symfony 3,RESTAPI,PUT,文件上传 [重复]
【发布时间】:2018-08-30 12:46:22
【问题描述】:

我正在向我的网站添加 RESTFull api,我需要更新我的工具,图片也需要更新。 我的问题就是 PUT 请求的问题

/**
* @Rest\Put("/tools/{id}")
* 
* @param Request $request
*/
public function editToolAction($id, Request $request)

symfony 仅使用 Content_type application/x-www-form-urlencoded 解析数据,所以我可以从请求中获取它,这适用于字符串等。

$parameters = $request->request->all();

但要发送文件,我需要标头:

content-type:"multipart/form-data; boundary....

$parameters = $request->request->all();
$files = $request->files->all();

但对于多部分标头,parametersfiles 都为空

对于@Rest\POST,这是完美的工作

我不在客户端工作,所以我无法将请求从 PUT 更改为 POST,有什么解决办法吗?

网站正在使用 symfony 3.4。 ,PHP 7.2。 , FOSRestBundle, FOSOAuthBundle,.... 检查它是否工作 Postman 被使用了

【问题讨论】:

    标签: php rest symfony fosrestbundle


    【解决方案1】:

    PHP 会自动为您解析application/form-data 并将结果放入$_FILES。 Symfony 很可能只是从那个超级全局中读取数据来填充->files() 函数的结果。

    但是,PHP 只会对 POST 请求执行此操作。由于您使用的是PUT,PHP 不会解析它,Symfony 也可能不会暴露它。

    如果 symfony 没有应用程序/表单数据解析器的用户态实现,你应该在 composer 上找到一个。

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      相关资源
      最近更新 更多