对于我使用 symfony 构建的其他 API,我有一个带有图像的实体 Product。
使用 Postman 我尝试发布这个实体并上传这个文件,我使用 form-data 就像我在很多帖子上看到的那样 Content-Type form-data/multipart 而没有。
邮差
但我的文件没有出现在正文请求中。当我转储它时,我只有四个没有“url_image”的参数?
问题是什么 ?我该如何解决?
如果你这样做:
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'); }
上传的文件并不完全在请求正文中
当您通过上述方法上传文件时,文件内容不在请求正文中,而是在请求的文件参数包中。
您可以在控制器中获取它们,如下所示:
public function someControllerMethod(Request $request) { $img = $request->files->get('url_image'); }
你将得到的是 UploadedFile 的一个实例。我建议您查看文档以了解如何使用它。您通常会移动到文件系统中的某个位置或将其作为流打开并将其发送到云存储提供程序。
干杯!
2 回答
如果你这样做:
然后你做错了,而是做:
上传的文件并不完全在请求正文中
当您通过上述方法上传文件时,文件内容不在请求正文中,而是在请求的文件参数包中。
您可以在控制器中获取它们,如下所示:
你将得到的是 UploadedFile 的一个实例。我建议您查看文档以了解如何使用它。您通常会移动到文件系统中的某个位置或将其作为流打开并将其发送到云存储提供程序。
干杯!