laravel上传文件&获取请求实例(隐式)
laravel可以进行定义隐式控制器
首先在route.php定义如下路由
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
Notice
如下所示,因为使用的是get
方法,所以方法名称以get
开头 当方法为驼峰式写法时,调用时候请使用__-__
public function getFuckCode(){........}
调用的时候则使用http:/(你的域名)/request/fuck-code
,如果是post
,则同理
第一种上传文件的存储方式:将文件默认放在public文件下
public function getFileUpload(){ $postUrl = asset('request/file-upload'); $csrf_field = csrf_field(); $html = <<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下
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'); }