猿问

Lumen 没有从发送的表单数据中收到任何文件

我在 chrome 中检查了 Headers 发送的表单数据,它看起来像这样:

现在看起来我的 POST 请求中有一个名为“files”的图像文件。


现在在我的流明控制器中,我执行以下调试以尝试获取文件:


return response([$request->hasFile('files'), $request->file('files'), $request->get('files')]);

然而,我得到的是这样的回应:


[真,{},空]


这是我在我的反应应用程序中提出的请求:


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,

        })

有谁知道我为获取图像所做的事情有什么问题?


慕哥6287543
浏览 123回答 1
1回答

SMILET

该$request->file()方法返回该类的一个实例,Illuminate\Http\UploadedFile并在您的响应中显示为 a {},但您的文件已上传,并且在何时有效,$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').
随时随地看视频慕课网APP
我要回答