我想上传一个.CSV
文件,将一些记录插入我的数据库。
不幸的是,它不起作用。
我的路线:
Route::get('excel/import','Backend\ExcelController@getImport');
Route::post('excel/import','Backend\ExcelController@postImport');
我的控制器:
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>
如果我使用的话,没有任何内容:
$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
我需要你的帮助,非常感谢
答案 0 :(得分: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>
答案 1 :(得分:1)
使用 {{csrf_field()}} 代替 $ csrf_field (如果它位于刀片中)和 csrf_field()(如果它位于控制器中)