1

我正在检索一个 POSTed 文件:

$this->app->post(Extension::API_PREFIX . "profile/picture", array($this, 'post_profile_pic'))
      ->bind('post_profile_pic');

public function post_profile_pic(Request $request) {
    $response = $this->app->json(array(
        'file' => $request
    ));
    return $response;
}

我正在使用 Postman 上传文件(见截图),但请求为空:

{
    "file": {
        "attributes": { },
        "request": { },
        "query": { },
        "server": { },
        "files": { },
        "cookies": { },
        "headers": { }
    }
}

然而它显然知道那里应该有一个文件。那么如何访问该文件?

4

1 回答 1

3

PHP 中上传的文件不是通过 $_POST 发送的,而是在一个名为 $_FILES 的单独变量中发送(http://php.net/manual/en/features.file-upload.post-method.php) - 所以在你的情况下你应该看一眼

$this->app->files

如果您使用 symfony 的默认表单组件,文档位于http://symfony.com/doc/current/reference/forms/types/file.html#basic-usage

在 simpleforms 中,模块文件由以下行检索

$files = $this->app['request']->files->get($form->getName());

它使用了 Bolt、Silex 和 Symfony 组件提供的基本结构。(另见https://github.com/jadwigo/SimpleForms/blob/master/Extension.php#L505

于 2015-01-12T21:48:44.793 回答