使用 symfony2 从 post Multipart (Content-Disposition: form-data) 获取数据
Posted
技术标签:
【中文标题】使用 symfony2 从 post Multipart (Content-Disposition: form-data) 获取数据【英文标题】:Get Datas from post Multipart (Content-Disposition: form-data) with symfony2 【发布时间】:2015-10-18 15:40:46 【问题描述】:使用 AngularJS,我在一个请求中发布表单数据和文件。我无法在 symfony2 的控制器中正确处理数据。
我只得到$request->getContent()
的完整数据字符串,但它没有被解析。
这里有更多细节:
1 - 我像这个例子一样发送数据并且它有效 => http://shazwazza.com/post/Uploading-files-and-JSON-data-in-the-same-request-with-Angular-JS
2 - 这是发送的数据:
-----------------------------23743060120122
Content-Disposition: form-data; name="model"
"type_inventaire_id":"8","profondeur_id":"2","code_pays_elv":"FR"
-----------------------------23743060120122
Content-Disposition: form-data; name="file"; filename="importChep.txt"
Content-Type: text/plain
69182002
22096034
22096033
00110011
//69182007
69182003
-----------------------------23743060120122
3 - 我只能用$request->getContent()
获取数据,但它没有被解析
我想得到它:
$file = $request->files->get('file');
$model = $request->get('model');
我寻找了一天的解决方案,但我没有找到任何东西......
有人有想法吗?
【问题讨论】:
【参考方案1】:您是在执行 POST 还是 PUT 请求?我发现当使用 PUT 方法时,symfony 不会让您访问属性,但是使用 POST 您应该能够访问您的数据:
$file = $request->files->get('file');
$model = $request->request->get('model');
【讨论】:
这是一个 POST 请求。我认为这是 MULTIPART 的问题。 你找到解决方案了吗?以上是关于使用 symfony2 从 post Multipart (Content-Disposition: form-data) 获取数据的主要内容,如果未能解决你的问题,请参考以下文章
从 $_POST 请求(不是来自 URL)使用 ParamConverter
Symfony2:KnpPaginator 仅显示带有 POST 表单的第一页