Laravel 在 POST 方法中从 multipart/form-data 获取请求
Posted
技术标签:
【中文标题】Laravel 在 POST 方法中从 multipart/form-data 获取请求【英文标题】:Laravel get requests from multipart/form-data in POST method 【发布时间】:2021-08-03 02:02:16 【问题描述】:我收到第三方对我的 laravel post API 的请求,其中包含两个带有标题的表单数据(ID、文件)(Content-type multipart/form-data)
在 laravel 控制器中,在 $request->all()
中没有收到请求,但可以在 file_get_contents('php://input')
中看到表单数据。
在没有内容类型 multipart-formdata 的同一请求中,它工作正常,获取请求 - id 和文件。 (我已经使用相同的第三方请求参数检查了 Postman)
作为 multipart-formdata 的内容类型是从第三方请求的,因此无法删除或修改标头。如何使用 POST 方法在 laravel 中正确接收?
请指导。
【问题讨论】:
$request->getContent()
带给你什么?
同 file_get_contents('php://input') 但是否可以解析该结果以获取输入 id 和文件(pdf)
您是否将任何第三方中间件应用于您的 apis 路由?
不,不应用任何中间件
【参考方案1】:
假设您的enctype="multipart/form-data"
是正确的并且文件名是myfile
,
你应该得到它
$file = $request->file('myfile');
在您的控制器或其他类中,例如 FormRequest 类或 Validation 类
【讨论】:
谢谢。 $request->file & $reqeust->all 都只返回空数组。 @Tamilvanan,你能去源代码并在你的问题中发布 html 吗?以上是关于Laravel 在 POST 方法中从 multipart/form-data 获取请求的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 中从数据库存储和加载 JSON 的最佳方法
来自同一登录的Laravel Multi-auth(多个用户表)