laravel上傳文件&獲取請求實例(隱式)php
laravel能夠進行定義隱式控制器html
首先在route.php定義以下路由laravel
Route::controller('request','RequestController');
在App\Http\Controllers
下建立RequestController.php
瀏覽器
class RequestController extends Controller { public function getBasetest(Request $request) { $input = $request->input('test'); echo $input; } }
http:/(你的域名)/request/basetest?test=123,能夠發現瀏覽器會輸出123
app
Noticepost
以下所示,由於使用的是get
方法,因此方法名稱以get
開頭 當方法爲駝峯式寫法時,調用時候請使用__-__url
public function getFuckCode(){ ........ }
調用的時候則使用http:/(你的域名)/request/fuck-code
,若是是post
,則同理code
第一種上傳文件的存儲方式:將文件默認放在public文件下orm
public function getFileUpload(){ $postUrl = asset('request/file-upload'); $csrf_field = csrf_field(); $html = <<<CREATE <form action ="$postUrl" method="post" enctype="multipart/form-data"> $csrf_field <input type="file" name="file"></br></br> <input type="submit"> </form> CREATE; return $html; } public function postFileUpload(Request $request){ if(!$request->hasFile('file')){ exit('文件爲空'); } $file = $request->file('file'); if(!$file->isValid()){ exit('文件上傳出錯'); } $destPath = public_path('images'); if(!file_exists($destPath)) mkdir($destPath,0755,true); $filename = $file->getClientOriginalName(); $file->move($destPath,$filename); }
第二種上傳文件的存儲方式:使用laravel提供的本地存儲 在storage/app下
csrf
public function pic(Request $request){ $request->input('image_url'); $file = Input::file('image_url'); if($file->isValid()){ Storage::put( 'images/'.$request->user()->id.'.jpg', file_get_contents($request->file('image_url')->getRealPath()) ); } $image_url = '/laravelfuck/storage/app/images/'.$request->user()->id.'.jpg'; return redirect('Admin/index'); }