【发布时间】:2018-05-13 01:04:53
【问题描述】:
环境: 狂饮 6 Symfony 2.3
通过 Guzzle POST 请求 should be done with a multipart request 上传多个文件。所以我像这样配置我的 $options 数组:
Array
(
[multipart] => Array
(
[0] => Array
(
[name] => filename-0
[contents] => Resource id #440
[filename] => filename-0
)
[1] => Array
(
[name] => filename-1
[contents] => Resource id #441
[filename] => filename-1
)
[2] => Array
(
[name] => filename-2
[contents] => Resource id #442
[filename] => filename-2
)
)
[headers] => Array
(
[Accept] => application/json
[Content-Type] => multipart/form-data
[Accept-Language] => de
)
[allow_redirects] =>
[http_errors] =>
)
多部分数组中的资源是 fopen() 的结果。
并使用发送请求
$response = $this->client->post(
'/someUrl/someAction',
$options
);
使用已创建的客户端。
在接受 Symfony-Controllers 方面,我无法发送文件:
var_dump($_FILES); // array(0) {}
var_dump($_POST); // array(0) {}
var_dump(count($request->files->all())); // int(0)
但是,这两个:
var_dump(file_get_contents("php://input"));
var_dump($request->getContent());
在输入流上返回数据:
/myPath/FileController.php:xx:
string(601) "--e55f849feb078da4a9e35ba77da3ded02ec813a7
Content-Disposition: form-data; name="filename-0"; filename="filename-0"
Content-Length: 43
This is a testfile...
--e55f849feb078da4a9e35ba77da3ded02ec813a7
Content-Disposition: form-data; name="filename-1"; filename="filename-1"
Content-Length: 43
This is a testfile...
--e55f849feb078da4a9e35ba77da3ded02ec813a7
Content-Disposition: form-data; name="filename-2"; filename="filename-2"
Content-Length: 43
This is a testfile...
--e55f849feb078da4a9e35ba77da3ded02ec813a7--
"
我怎样才能以 Symfony 的方式进入接收控制器?
需要考虑的好奇心: 控制器报告
var_dump($request->getContentType()); // NULL
我的直觉表明这可能很重要。
【问题讨论】: