本文實例講述了Laravel框架文件上傳功能實現方法。分享給大家供大家參考,具體如下:
實現步驟:
(1). 配置文件修改
打開 config/filesystems.php 文件
在 ‘disks' 數組中添加如下代碼
//自定義 'uploads' => [ 'driver' => 'local', //'root' => storage_path('app/uploads'), 'root' => public_path('uploads/'.date('Ymd')), ],
(2).前端視圖 upload.blade.php
根據需求,設計簡單的視圖,核心代碼如下
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() }} div class="form-group"> label for="file" class="col-md-4 control-label">Hello world/label> div class="col-md-6"> input id="file" type="file" class="form-control" name="source"> /div> /div> div class="form-group"> div class="col-md-6 col-md-offset-4"> button type="submit" class="btn btn-primary"> i class="fa fa-btn fa-sign-in">/i> 上傳 /button> /div> /div> /form> /div> /div>
(3). 控制器核心代碼
use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; //上傳文件 功能實現方法 public function upload(Request $request){ if ($request->isMethod('POST')){ $file = $request->file('source'); //判斷文件是否上傳成功 if ($file->isValid()){ //原文件名 $originalName = $file->getClientOriginalName(); //擴展名 $ext = $file->getClientOriginalExtension(); //MimeType $type = $file->getClientMimeType(); //臨時絕對路徑 $realPath = $file->getRealPath(); $filename = uniqid().'.'.$ext; $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath)); //判斷是否上傳成功 if($bool){ echo 'success'; }else{ echo 'fail'; } } } return view('upload'); }
(4). 執行上述方法結果
通過調用上述方法,正確執行后,上傳的文件將出現在 public/uploads 的對應日期目錄下
更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。