Laravel 5.5 - $request->file returns 空

Laravel 5.5 - $request->file returns null

我创建了一个上传文件的表单,但是当我提交时它 returns 是一个空值。当我添加 enctype="multipart/form-data" 时,它会重新加载页面并且似乎没有通过我的控制器。

我的 HTML 表格

<form class="form-horizontal" role="form" name="importform" method="POST" action="{{ route('import_type') }}" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="control-group">
  <label class="control-label">&nbsp;</label>
<div class="controls">
<div class="control-group text-center">
  <label class="btn btn-primary" for="file-selector">
  <input id="file-selector" name="template_upload" type="file" value="" required autofocus style="display:none" onchange="$('#upload-file-info').html(this.files[0].name)" required>                                    Upload List               </label>
   <span class='label label-default' id="upload-file-info"></span>
   </div>
   </div>
   </div>
   <div class="control-group">
   <div class="controls">
    <input class="btn btn-primary" type="submit" id="import-submit" name="import-submit">
    </div>
    </div>
    </form>

我的控制器:我正在使用导入方法

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\ImportTypeRequest;
use \App\Guest;
use \App\Role;
use \App\User;
use \App\Type;
use Illuminate\Support\Facades\Auth;



class GuestController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {

        $user = User::with('roles')->where('id', Auth::id())->get();
        $types = Type::where('user_id', Auth::id())
            ->where('active',1)->get();


        return view('view_import',compact('user','types'));

    }

    public function import(ImportTypeRequest $request)
    {


        $template_upload = $request->file('template_upload');
        dd($template_upload);
    }
}

这里有一些尝试解决此问题的建议方法。

首先,在您的导入方法中,在其顶部添加 dd($request->all()) 并查看响应。您应该会看到所有表单数据,当然还有 template_upload 文件。这就是您确保看到从表单到控制器方法的所有传入数据的方式。

然后尝试摆脱 ImportTypeRequest 并只使用 Illuminate\Http\Request 看看你会得到什么。如果您得到不同的结果,那么问题出在 ImportTypeRequest class.

那你为什么不直接使用 $request->template_upload?!我猜它更干净。