首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从发送的表单数据中没有接收到任何文件。

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

Stack Overflow用户
提问于 2020-01-16 20:02:15
回答 1查看 1.4K关注 0票数 0

我签了chrome,报头发送的表单数据如下所示:

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

现在,在Lumen中的Controller中,我做了以下调试以尝试获取文件:

代码语言:javascript
运行
复制
return response([$request->hasFile('files'), $request->file('files'), $request->get('files')]);

然而,我得到的答案是:

真,{},空

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

代码语言:javascript
运行
复制
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,
        })

有人知道我在做什么来获取图像的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 09:31:08

$request->file()方法返回Illuminate\Http\UploadedFile类的一个实例,并在响应中显示为{},但是您的文件是上传的,$request->hasFile()true时是有效的,这样您就可以检索它的属性如下:

代码语言:javascript
运行
复制
if ($request->hasFile('files')) {
    $files = $request->file('files');

    return response()->json([
        'path' => $files->path(),
        'name' => $files->getClientOriginalName(),
        'size' => $files->getSize()
    ]);
}

或者,如果您想以文件的形式获得响应:

代码语言:javascript
运行
复制
if ($request->hasFile('files')) {
    return response()->file(
        $request->file('files')->path()
    );
}

参见检索和存储上载的文件的Laravel。

注意:我建议使用files以外的名称,因为$request->filesSymfony\Component\HttpFoundation\FileBag类的一个实例,当您希望使用$request->files作为$request->file('files')的速记时,会引起冲突。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59776986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档