laravel HTTP リクエスト: Cookie とアップロードされたファイルを取得する

齐天大圣
リリース: 2020-12-15 09:28:14
オリジナル
1652 人が閲覧しました

COOKIE

Laravel は最下層で Cookie 値を暗号化し、署名に認証コードを使用します。したがって、クライアントが Cookie の値を変更すると、Cookie の値は無効になります。こうすることで、Cookie の偽造を心配する必要がなくなります。

Cookie 値の設定

Cookie 値の設定には、ここで簡単に説明されている、laravel 応答 (Response) の知識が使用されます。

cookie 関数を使用して cookie を作成し、応答関数を通じてその 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 値を取得するには 2 つの方法があります。これらの 2 つの方法を以下に示します:

use Illuminate\Http\Request;
$value = $request->cookie('name');
// 或
use Illuminate\Support\Facades\Cookie;
$value = Cookie::get('name');
ログイン後にコピー

アップロードされたファイルの取得

laravel フレームワークは、アップロードされたファイルの取得とファイルの保存が非常に簡単です。

アップロードされたファイルを取得するには、ファイル メソッドと動的属性メソッドを使用する 2 つの方法があります。このメソッドは、Illuminate\Http\UploadedFile インスタンスを返します。

$logo = $request->file('logo');
// or
$logo = $request->logo;
ログイン後にコピー

もちろん、ファイルを取得する前に、ファイルが存在するかどうかを判断できます。ここでは、hasFile メソッドを使用します:

if ($request->hasFile('logo')) {
    $logo = $request->file('logo');
}
ログイン後にコピー

リクエスト リクエスト インスタンスは、アップロードされたファイルを検証することもできます。

if ($request->file('logo')->isValid()) {
    //
}
ログイン後にコピー

UploadFile インスタンスには、アップロードされたファイルの一時保存パス、拡張子、その他の情報を取得するためのメソッドが多数あります。以下は、ファイル タイプのサフィックス

$logo = $request->file('logo');
$logo->path();  // png
ログイン後にコピー

を取得する方法を示しています。最後に、ファイルを保存する方法を示します。store メソッドを使用してファイルを保存します。このメソッドには 2 つのパラメータがあります。最初のパラメータは、ファイルを保存するパスを入力します。 、2 番目のパラメータは、ファイルがどのホーム ディレクトリ (またはサードパーティ プラットフォーム) に保存されるかを指定します。 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 HTTP リクエスト: Cookie とアップロードされたファイルを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!