You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel表单上传文件时input file返回null的问题求助

解决Laravel中input type file返回null的问题

你遇到的核心问题是表单未配置正确的编码类型,导致文件无法被Laravel接收。

1. 修复表单的enctype属性

上传文件的表单必须添加enctype="multipart/form-data"属性,这是HTTP传输文件的必要条件。修改你的blade表单代码:

<form action="/addcoaches" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}
    <div class="input-field" style="margin-left:0;">
        <div class="form-group row">
            <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('File') }}</label>
            <div class="col-md-6">
                <input type="file" name="filename" required>
            </div>
        </div>
        <div class="form-group row mb-0">
            <div class="col-md-6 offset-md-4">
                <button type="submit" class="btn btn-primary">
                    {{ __('Upload') }}
                </button>
            </div>
        </div>
    </div>
</form>

2. 修正控制器的验证规则

你的验证规则里使用了filename.*,这是针对多文件上传的语法,但当前表单是单文件上传,需要调整规则:

public function saveCoach(Request $request)
{
    $request->validate([
        'filename' => 'required|mimes:doc,docx,pdf,jpg,jpeg,png|max:2000'
    ]);

    dd($request->file('filename'));
}

完成以上修改后,再次提交表单,$request->file('filename')就能正常返回上传的文件对象了。

内容的提问来源于stack exchange,提问作者Michael Ritung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:04