laravel中如何获取cookie-创新互联

小编给大家分享一下laravel中如何获取cookie,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联是一家集网站建设,建始企业网站建设,建始品牌网站建设,网站定制,建始网站建设报价,网络营销,网络优化,建始网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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代码如下:


    @csrf
    
    

保存文件代码如下:

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"
    }
}

以上是“laravel中如何获取cookie”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文名称:laravel中如何获取cookie-创新互联
转载注明:http://pwwzsj.com/article/dcjchg.html