symfony - Symfony 4 和 Postman 访问来自 post-data POST 请求的文件
问题描述
我正在尝试使用 Symfony REST API 进行图像上传。
但是,我在尝试使用 Postman 读取 Symfony 端的 POST 请求文件参数时遇到问题。
在邮递员上,我在 POST 请求中有以下正文:
key=file
带有和的表单数据POST 请求value=some image
当请求到达 Symfony 时,我有以下内容:
public function uploadImage(Request $request)
{
$params = $request->request;
$file = $params->get('image');
dump($file);
...
}
file
变量null
是。我也尝试过使用$params = $request->files
,但结果是一样的。
如果我转储$request->getContent()
,我可以看到文件正在通过,但无法访问它来做我需要的事情。
我错过了什么吗?
解决方案
我设法弄清楚了,这与我正在使用的 Postman 应用程序有关。
基本上,当我form-data
在 body 上选择时,Headers 选项卡不会自动更新为Content-Type
=>之类multipart/form-data
的内容,它只会保留它存在的前一个选项卡(例如 application/json)。
当我发现这一点时,我将 Content-Type 更改为multipart/form-data但它仍然无法正常工作。
它仅在我取消标头上的 Content-Type 时才有效。
这是为什么?我错过了boundary
Content-Type 上的部分,当正文是表单数据并且没有生成 Content-Type 标头时,Postman 会自动生成该部分。
所以,
Content-Type = multipart/form-data -> 不起作用
内容类型 =多部分/表单数据;边界=----WebKitFormBoundary5Qa5cbeHtIOCMAKa -> 工作正常(你不需要指定这个,因为邮递员会用这个集合发出请求)
推荐阅读
- swift - 如何快速自由裁剪 UIImage?
- scikit-learn - Sagemaker 管道 - 处理步骤 - SKLearn - 缺少 SKLearn 扩展
- spring - @PostConstruct 方法可以在依赖于 @PostConstruct 的bean初始化之后执行吗?
- mysql - MySql:使用连接和where子句“插入”时重复值
- tailwind-css - 无法看到 pdf 中的样式 - 顺风 css
- python - Cloudera Impala INVALIDATE METADATA 表列表
- label - 如何更改分段掩码中的类标签顺序
- powershell - 如何用“”包裹 & 以转义 & 符号
- docker - 如何允许具有只读根文件系统的容器写入 tmpfs-volume?
- powershell - Windows Server 任务计划程序触发器 AtStartUp