使用文件上传发布数据休息

时间:2018-05-16 12:23:46

标签: php rest symfony postman

对于我使用symfony构建的其他API,我有一个带有图像的实体Product。

使用Postman我尝试发布这个实体并上传这个文件,我使用的形式数据就像我在许多帖子中看到的那样,内容类型为form-data / multipart而没有。

POSTMAN

但是我的文件没有出现在正文请求中。当我转储它时,我只有四个没有“url_image”的参数?

有什么问题?我该如何解决?

2 个答案:

答案 0 :(得分:0)

如果你这样做:

public function someAction(Request $request) {
    $file = $request->get('url_image');
    // or
    $file = $request->request->get('url_image');
}

然后你做错了,而是做:

public function someAction(Request $request) {
    /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $file */
    $file = $request->files->get('url_image');
}

上传的文件并不完全在请求正文中

答案 1 :(得分:0)

当您通过上述方法上传文件时,文件内容不在请求正文中,而是在请求的文件参数包中。

您可以在控制器中获取它们,如下所示:

public function someControllerMethod(Request $request)
{
   $img = $request->files->get('url_image');
}

您将获得的是UploadedFile的一个实例。我建议您查看文档以了解如何使用它。 您通常会移动到文件系统中的某个位置或将其作为流打开并将其发送给云存储提供商。

干杯!