Laravel 5.5 - $ request->文件返回null

时间:2017-11-08 20:01:34

标签: php forms laravel

我创建了一个上传文件的表单,但在提交时它返回一个空值。当我添加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>

MY CONTROLLER:我正在使用导入方法

<?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);
    }
}

1 个答案:

答案 0 :(得分:0)

以下是一些尝试解决此问题的方法。

首先,在导入方法中,在其顶部添加dd($request->all()),看看响应是什么。您应该看到所有表单数据,当然还有template_upload文件。这就是你如何确保从表单到控制器方法看到所有即将到来的数据。

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

那你为什么不用$request->template_upload?!我觉得它更干净。