2017-06-09 7 views
1

.CSVファイルをアップロードして、データベースにレコードを挿入します。アップロードファイルがlaravel 5.1で動作しません

残念ながら、動作しません。

マイルート:

Route::get('excel/import','Backend\[email protected]'); 
Route::post('excel/import','Backend\[email protected]'); 

マイコントローラー:

public function getImport(){ 

    $csrf_field = csrf_field(); 
    $postUrl='import'; 
    $html = <<<CREATE 
    <form action="$postUrl" method="post"> 
     $csrf_field 
     <input type="file" name="importCsv" formenctype="multipart/form-data" ><br/><br/> 

     <input type="submit" value="submit"/> 
    </form> 
CREATE; 
    return $html; 
} 


public function postImport(Request $request){ 
    //get file 
    $file = Input::file('importCsv'); 
    dd($file); 
    $upload=$request->file('importCsv'); 
    dd($upload); 
} 

私が使用している場合それはちょうどnullの印刷:

Input::file('importCsv');<br>

、何も私が使用している場合:

を10

$request ->file('importCsv');<br><br>

だから、私はdd($request->all()); <br>

array:2 [▼ 
"_token" => "wPuAXUvSItR4MFJ4bAjQhanaf0W9avrqR2PgjxcU" 
"importCsv" => "T_OpusDef.csv" 
] 

のように印刷しようとした私は名前だけを得ることができる、と私はgetRealPath()てパスをしたいとき、それは私に言った:

FatalErrorexception: call to a memeber function getRealPath() on null 

私はあなたの助けが必要です、ありがとうございます

答えて

1

フォームは次のようになります:

<form action="{{ $postUrl }}" method="post" enctype="multipart/form-data"> 
    {{ $csrf_field }} 
    <input type="file" name="importCsv"><br/><br/> 
    <input type="submit" value="submit"> 
</form> 
+0

おかげであれば、しかし、あなたのソリューションが動作しませんでした、私は同じ結果を得る –

+0

@ TengdaSuあなたはコントローラでHTMLを作成すべきではありません。すべてのHTMLをBladeファイルに置き、コントローラメソッドからビューを返します。 https://laravel.com/docs/5.4/blade –

+1

@AlexeyMezninあなたは正しいです、ありがとうございます! –

1

代わり$ csrf_fieldの使用{{csrf_field()}}そのブレードとcsrf_fieldであれば()は、そのコントローラーで

+0

ありがとう、私はそれを得た –

関連する問題