- 通过echo生成的表格,貌似只能用方式3进行跨域
- Route->name方法设置route名,在html里使用
- 默认文件最大上传大小2m,修改upload_max_filesize (= 20M)后重启项目
@extends('mytemplate.parent')
@section('part1')
<form method="post" action="{{ route('v4r') }}" enctype="multipart/form-data">
<!-- 方式1:laravel 5.6 及以后版本,也是 csrf_field() 的简写 -->
<!-- @csrf -->
<!-- 方式2:laravel 5.6 以下老版本 -->
<!-- {{ csrf_field() }} -->
<!-- 方式3:添加隐藏字段-->
<input name="_token" type="hidden" value="<?php echo csrf_token();?>">
<!-- 输出上面的 token 字符串 -->
{{ csrf_token() }}
<input type='text' name="id" value='enter name'/>
<input type='file' name="file1"/>
<input type='submit' value='Submit'/>
</form>
@endsection
@section('part2')
<?php
echo '<form method="post" action="'.route('v4r').'" enctype="multipart/form-data">';
echo '<input name="_token" type="hidden" value="'.csrf_token().'">';
echo '<input type="text" name="id" value="enter name"/>';
echo '<input type="file" name="file1"/>';
echo '<input type="submit" value="Submit"/></form>';
?>
@endsection
@extends('mytemplate.parent')
@section('part1')
<?php
var_dump($_REQUEST);
echo '<br/>';
var_dump($_FILES);
?>
@endsection
@section('part2')
{{var_dump($_REQUEST)}}
{{ var_dump($_FILES)}}
<div>777</div>
@endsection
Route::get('/v3', [TestVIewController::class, 'v3'])->name('v3r');
Route::post('/v4', [TestVIewController::class, 'v4'])->name('v4r');
public function v3(){
return view('test.v3');
}
public function v4(Request $request){
$fn = 'file1';
if($request->hasFile($fn) && $request->file($fn)->isValid()) {
$fname=md5(time()).rand(100,999).'.'.$request->file($fn)->getClientOriginalExtension();
echo $fname;
$request->file($fn)->move(getcwd().'/upload', $fname);
}else{
echo $request->file($fn)->getError().'<br/>';
echo $request->file($fn)->getErrorMessage().'<br/>';
}
return view('test.v4');
}