Symfony 3,REST API,PUT,文件上传[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在向我的网站添加RESTFul 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();

但对于multipart标头,我得到parametersfiles的空值

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

即时通讯不在客户端工作,所以我无法将请求从PUT更改为POST,任何想法如何解决?

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

php rest symfony fosrestbundle
1个回答
0
投票

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

但是,PHP只会为POST请求执行此操作。由于你使用的是PUT,PHP不会解析它,Symfony可能不会公开它。

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

© www.soinside.com 2019 - 2024. All rights reserved.