Symfony 3,RESTAPI,PUT,文件上传

时间:2018-08-30 12:46:22

标签: php rest symfony fosrestbundle

我正在将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 .....检查其是否正常工作

1 个答案:

答案 0 :(得分:0)

PHP将自动为您解析20ms并将结果放入application/form-data中。 Symfony可能只是从该超级全局读取以填充$_FILES函数的结果。

但是,PHP仅针对->files()请求执行此操作。由于您使用的是POST,因此PHP不会解析它,而Symfony可能不会公开它。

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