COOKIE
laravel在底层会对cookie值进行加密,并且使用授权码进行签名。所以,如果客户端修改了cookie值,那么就会失效。这样,我们就不用担心cookie伪造问题。
设置cookie值
设置cookie值会用到laravel响应(Response)的知识,这里简单带过。
可以使用cookie函数来创建cookie,然后再通过response函数将cookie返回给客户端:
// cookie($name, $value, $minutes, $path, $domain, false, ...); $cookie = cookie('username', 'php.cn', 3600); return response('hello laravel')->cookie($cookie);
除了使用cookie函数外,还可以使用响应实例的cookie方法设置并返回。该方法和cookie函数的参数是一致的。
return response('Hello World')->cookie( 'name', 'php.cn', 3600 );
获取cookie值
获取cookie值可以由两种方法,下面演示这两种方法:
use Illuminate\Http\Request; $value = $request->cookie('name'); // 或 use Illuminate\Support\Facades\Cookie; $value = Cookie::get('name');
获取上传的文件
laravel框架获取上传的文件及保持文件非常的简单。
获取上传的文件有两种方法,使用file方法或动态属性方法。该方法返回Illuminate\Http\UploadedFile实例。
$logo = $request->file('logo'); // or $logo = $request->logo;
当然可在获取文件前判断该文件是否存在,这里使用hasFile方法:
if ($request->hasFile('logo')) { $logo = $request->file('logo'); }
request请求实例还能对上传的文件进行验证,我们非常推荐在保存文件前进行此操作:
if ($request->file('logo')->isValid()) { // }
uploadFile实例有许多方法,可以获取上传文件的零时保存路径、扩展名等信息。下面演示获取文件类型后缀
$logo = $request->file('logo'); $logo->path(); // png
最后,将如何保存文件,保存文件使用store方法,该方法的有两个参数,第一个参数填写保存文件的路径,第二个参数填写文件保存在哪个主目录中(或第三方平台里)。laravel会自动生成一个唯一ID作为文件名。该信息在配置文件config/filesystems.php中,如下:
'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), ], ],
如果想自己设置保存问价文件的文件名,需要使用storeAs方法,该方法的第二个参数是要设置的文件名。
$request->file('logo')->storeAs('img/logo', '1.png');
最后,贴出一个完整的文件上传的代码示例:
html代码如下:
保存文件代码如下:
if ($request->hasFile('logo')) { $logo = $request->file('logo'); if ($logo->isValid()) { $ext = $logo->extension(); $fileName = date('YmdHis') . mt_rand(10000,99999); $path = $logo->storeAs('img/logo', $fileName . '.' . $ext); dump($path); //"img/logo/2020121413351718218.png" } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Introduction aux composants Laravel
Introduction au middleware Laravel
Quels sont les modèles de conception utilisés par Laravel ?
Lequel est le plus simple, thinkphp ou laravel ?
504 portail expiré
La différence entre python et pycharm
Comment trouver la valeur maximale et minimale d'un élément de tableau en Java
Comment télécharger des vidéos de Douyin