我签了chrome,报头发送的表单数据如下所示:
现在看来,在我的POST请求中有一个名为“file”的图像文件。
现在,在Lumen中的Controller中,我做了以下调试以尝试获取文件:
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,
})
有人知道我在做什么来获取图像的问题吗?
发布于 2020-01-17 09:31:08
$request->file()
方法返回Illuminate\Http\UploadedFile
类的一个实例,并在响应中显示为{}
,但是您的文件是上传的,$request->hasFile()
是true
时是有效的,这样您就可以检索它的属性如下:
if ($request->hasFile('files')) {
$files = $request->file('files');
return response()->json([
'path' => $files->path(),
'name' => $files->getClientOriginalName(),
'size' => $files->getSize()
]);
}
或者,如果您想以文件的形式获得响应:
if ($request->hasFile('files')) {
return response()->file(
$request->file('files')->path()
);
}
参见检索和存储上载的文件的Laravel。
注意:我建议使用files
以外的名称,因为$request->files
是Symfony\Component\HttpFoundation\FileBag
类的一个实例,当您希望使用$request->files
作为$request->file('files')
的速记时,会引起冲突。
https://stackoverflow.com/questions/59776986
复制相似问题