laravel基礎課程---7、文件處理、閃存、cookie(cookie原理和使用場景)
一、總結
一句話總結:
頁面請求服務器的時候是把這個頁面中所有的cookie都帶上了的,cookie里面也存了session的信息,服務器根據這個session可以判斷用戶
登錄:[如果未勾選自動登錄 默認采用session(服務器判斷session)(session關閉瀏覽器就失效)],[如果勾選自動登錄 默認采用cookie]
瀏覽紀錄:會在cookie中存一份
1、laravel中的閃存是什么?
作用:【表單驗證錯誤】:Laravel 允許你將本次的輸入數據保留到下一次請求發送前。這個特性在表單驗證錯誤后重新填寫表單相當有用。
原理:【存入session】:Illuminate\Http\Request 的 flash 方法會將當前輸入的數據存進 session 中,因此下次用戶發送請求到應用程序時就可以使用它們
2、閃存語法及實例?
把表單提交所有數據寫入閃存:$request->flash(); 在頁面中的對應的input標簽的value屬性中寫value={{old('input的name名稱')}}
把誰寫入閃存:$request->flushOnly();
除了誰寫入閃存:$request->flushExcept();
把當前所有的數據都寫入閃存:return back()->with('errors','用戶名長度不滿足')->withInput(); 這里的withinput()就是flash()的作用
3、回退到上一個頁面?
return back()
4、laravel支持鏈式操作?
return back()->with('errors','用戶名長度不滿足')->withInput();
5、return back()->with('errors','用戶名長度不滿足')->withInput();是什么意思?
back():回退到上一個頁面
with():向頁面發送數據,可以在頁面中用<?php dump($errors);?>來接收
把當前所有的數據都寫入閃存:return back()->with('errors','用戶名長度不滿足')->withInput();
6、laravel圖片上傳操作?
使用 Illuminate\Http\Request 實例中的 file 方法獲取上傳的文件:$file = $request->file('photo');
form表單加上文件傳輸選項:enctype="multipart/form-data"
7、文件上傳實例?
判斷是否有文件:hasFile():if ($request->hasFile('img'))
文件名:time()+rand():$newFile=time().rand().".".$ext;
上傳文件操作:move():$request->file('img')->move('./Uploads',$newFile);
// 獲取上傳文件
$img=$request->file('img');
$img2=$request->img;
// 判斷文件是否上傳
var_dump($request->hasFile('img'));
// 實例
if ($request->hasFile('img')) {
// 獲取后綴名
$ext=$request->file('img')->getClientOriginalExtension();
// 新的文件名
$newFile=time().rand().".".$ext;
// 上傳文件操作
$request->file('img')->move('./Uploads',$newFile);
}else{
// 回到上一個頁面
return back();
}
[實際開發中 使用無刷新上傳文件]
8、session和cookie如何使用(比如判斷用戶登錄)?
看cookie中是否有用戶信息,如果有,就將cookie信息存進session,然后登錄,否則就讓用戶重新登錄
登錄:其實還是先從cookie判斷起:[如果未勾選自動登錄 默認采用session(服務器判斷session)(session關閉瀏覽器就失效)],[如果勾選自動登錄 采用cookie]
9、laravel中如何查看和設置cookie?
查看所有cookie:$request對象的cookie()方法:dd($request->cookie());
查看指定cookie:echo $request->cookie('laravel_session'); 或 echo \Cookie::get('laravel_session');
設置cookie:\Cookie::queue('shauige','非浩哥莫屬',10);
設置cookie的實質:也就是將cookie信息寫進瀏覽器緩存
1、COOKIE的使用場景
登錄
[如果未勾選自動登錄 默認采用session]
[如果勾選自動登錄 默認采用cookie]
瀏覽紀錄
[使用cookie和session 實現企業郵箱登錄效果]
2、注意:
laravel 框架把所有的COOKIE進行加密
$_COOKIE['name'] =/= $request->cookie('name');
3、查看cookie
// 查看所有cookie
// dd($request->cookie());
// 查看cookie
echo $request->cookie('laravel_session');
echo \Cookie::get('laravel_session');
4、設置cookie
// 設置COOKIE
\Cookie::queue('shauige','非浩哥莫屬',10);
$cookie = cookie('name', 'value', 10);
return response('Hello World')->cookie($cookie);
10、laravel中$_COOKIE['name'] =/= $request->cookie('name'); 的原因是什么?
laravel 框架把所有的COOKIE進行加密
二、內容在總結中