Php Lumen不会从发送的表单数据接收任何文件
我在chrome中签入了发送表单数据的标题,该表单数据如下所示: 现在看来,在我的POST请求中有一个名为“files”的图像文件 现在,在Lumen中的控制器中,我执行以下调试以尝试获取文件:Php Lumen不会从发送的表单数据接收任何文件,php,laravel,multipartform-data,lumen,Php,Laravel,Multipartform Data,Lumen,我在chrome中签入了发送表单数据的标题,该表单数据如下所示: 现在看来,在我的POST请求中有一个名为“files”的图像文件 现在,在Lumen中的控制器中,我执行以下调试以尝试获取文件: return response([$request->hasFile('files'), $request->file('files'), $request->get('files')]); 然而,我得到的答复是: [真,{},空] 这是我在react应用程序中提出的请求: con
return response([$request->hasFile('files'), $request->file('files'), $request->get('files')]);
然而,我得到的答复是:
[真,{},空]
这是我在react应用程序中提出的请求:
const formData = new FormData();
formData.append("files", this.state.productData[key][0]);
fetch(`${process.env.REACT_APP_API_URL}/products/submit`, {
method: 'POST',
body: formData,
})
有人知道我在做什么来获取图像有什么问题吗?方法返回$request->file()
类的实例,并在您的响应中显示为{}
,但当$request->hasFile()时,文件被上载是有效的
为true
,因此您可以按如下方式检索其属性:
if($request->hasFile('files')){
$files=$request->file('files');
返回响应()->json([
'path'=>$files->path(),
'name'=>$files->getClientOriginalName(),
'size'=>$files->getSize()
]);
}
或者,如果希望以文件形式获取响应:
if($request->hasFile('files')){
返回响应()->文件(
$request->file('files')->path()
);
}
有关详细信息,请参阅Laravel文档
注意:我建议使用
files
以外的名称,因为$request->files
是Symfony\Component\HttpFoundation\FileBag
类的一个实例,当您想使用$request->files
作为$request->file('files'的缩写时,会导致冲突
你确定你在使用POST而不是PUT/PATCH吗?@HafezDivandari我已经在上面的帖子中添加了我的JS代码。这绝对是一个帖子。