laravel 如何实现图片上传功能
1,在\config\filesystems.php中配置上传文件存储路径:
'uploads' => [ 'driver' => 'local', 'root' => storage_path('app/uploads'), 'url' => env('APP_URL').'/storage' ],
2,路由配置\routes\web.php
Route::any('upload', 'StudentController@upload');
3,控制器\app\Http\Controllers\StudentController.php
1 <?php 2 namespace App\Http\Controllers; 3 use Illuminate\Http\Request; 4 use Illuminate\Support\Facades\Storage; 5 class StudentController extends Controller 6 { 7 public function upload(Request $request){ 8 if($request->isMethod('POST')){ 9 $files=$request->file("file"); 10 if($files->isValid()){ 11 $oragnalName=$files->getClientOriginalName(); 12 $ext=$files->getClientOriginalExtension(); 13 $type=$files->getClientMimeType(); 14 $realPath=$files->getRealPath(); 15 $file_new_name=date('Y-m-d-H-i-s').'-'.uniqid().'.'.$ext; 16 $bool=Storage::disk('uploads')->put($file_new_name,file_get_contents($realPath)); 17 var_dump($bool);exit; 18 } 19 } 20 return view('student/upload'); 21 } 22 }
4,视图:\resources\views\student\upload.blade.php
<div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">文件上传</div> <div class="panel-body"> <form class="form-horizontal" role="form" method="POST" action="" enctype="multipart/form-data"> {{ csrf_field() }} <input type="file" id="file" name="file"> <div class="form-group"> <div class="col-md-8 col-md-offset-4"> <button type="submit" class="btn btn-primary"> 确认上传 </button> </div> </div> </form> </div> </div> </div> </div> </div>
注:laravel中请求输入详见http://www.cnblogs.com/ziyiang/articles/6414608.html
你的指尖,有着改变世界的力量!