Laravelのファイル検証とは?
Laravel バリデーションは、バリデーションの役割を実行する方法です。 ファイルの種類、ファイルのサイズなどを確認できます。通常、ファイルの検証は、サーバーまたはアプリケーションでの不要なファイルのアップロードを回避するために使用されます。
今日は、Laravel 9 でのファイルのアップロードと保存について学びます。
プロジェクトの要件は次のとおりです。
- MySQL 8.0+
- マリアDB 10.2+
- PHP 8.1
FileUpload を定義する例を次に示します。
- プロセス 1. FileUpload プロジェクトを作成する
- プロセス 2. FileUpload プロジェクト データベース接続
- プロセス 3. FileUpload プロジェクトでモデルとコントローラーを作成する
- プロセス 4. FileUpload プロジェクトを実行してテストする
プロセス 1. FileUpload プロジェクトを作成する
ステップ1は、このコマンドラインを実行して、サーバーまたはPCにLaravel 9をインストールすることです. そのためには、フォルダー内の Windows SSH ターミナルを開く必要があります。
作曲家の作成–プロジェクトLaravel/Laravelファイルのアップロード
プロセス 2. FileUpload プロジェクト データベース接続
FileUpload プロジェクトの .env ファイルを開き、新しいデータベース名、ユーザー名、およびパスワードを追加します。
次のコードは次のとおりです。
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= FileUpload データベース名
DB_USERNAME= FileUpload データベースのユーザー名
DB_PASSWORD= FileUpload データベースのパスワード
プロセス 3. FileUpload プロジェクトでモデルとコントローラーを作成する
データベースが接続されたら、FileUpload プロジェクトのモデルとコントローラーを作成する必要があります。
そのためには、次のコマンドを実行する必要があります。
php 職人メイク:モデルファイルのアップロード –MC
次に、「databasemigrations2022_07_11_074014_create_file_uploads_table.php」ファイルに移動します。 この名前は、あなたの側で異なる場合があります。 ここで、次の 2 行をファイルに入れる必要があります。
$テーブル–>ストリング(‘ファイル名’)–>null 許容();
$テーブル–>ストリング(‘file_path_location’)–>null 許容();
このように見えます
{
公衆 関数 上()
{
スキーマ::作成(‘file_uploads’、 関数 (設計図 $テーブル) {
$テーブル->ID();
$テーブル->ストリング(‘ファイル名’)->null 許容();
$テーブル->ストリング(‘file_path_location’)->null 許容();
$テーブル->タイムスタンプ();
});
}
公衆 関数 下()
{
スキーマ::dropIfExists(‘file_uploads’);
}
};
「appModelsFileUpload.php」で FileUpload モデルを変更します。 そこに入力可能なプロパティを追加します。 コードを以下に示します。
名前空間 アプリモデル;
使用する IlluminateDatabaseEloquentFactoriesHasFactory;
使用する 照明データベース雄弁モデル;
クラス ファイルアップロード 伸びる モデル
{
使用する ハズファクトリー;
保護された $fillable = [
‘file_name’,
‘file_path_location’
];
}
次に、このコマンドを実行するために、テーブルをデータベースに移行する必要があります。
移行が完了したら、2 つの関数を作成する必要があります。 1 つはアップロード ページに移動する機能で、もう 1 つはファイルをディレクトリにアップロードしてデータベースに保存する機能です。
「appHttpControllersFileUploadController.php」ファイルに移動します。
次に、このコードをコントローラーに追加します。
公衆 関数 ファイルビュー(リクエスト $リクエスト)
{
戻る 見る(「ファイルアップロード」);
}
また、別の関数を以下に示します。
{
$ルール = 配列(
「添付ファイル」 => ‘マイム:jpeg,png,jpg,gif,svg,pdf|最大:1000’、
);
$メッセージ = 配列(
「添付ファイル」 => 「画像の必要量は 1Mb 未満です。」、
);
$バリデーター = バリデーター::作る($リクエスト->全て()、 $ルール、 $メッセージ);
もしも ($バリデーター->失敗する()) {
戻る リダイレクト()->ルート(「ファイルビュー」)->と(‘成功’、 「正常に追加されました」);
戻る リダイレクト()->ルート(「ファイルビュー」)->withErrors($バリデーター);
}そうしないと{
$imageName = 時間() . 「.」 . $リクエスト->添付ファイル->拡大();
//アップロード前に画像を削除
$パス = $リクエスト->添付ファイル->動く(public_path(「ストレージ/添付ファイル/」)、 $imageName);
$部門名[‘file_name’] = $imageName;
$部門名[‘file_path_location’] = $パス;
ファイルアップロード::作成($部門名);
戻る リダイレクト()->ルート(「ファイルビュー」)->と(‘エラー’、 「ファイルが追加されていません」);
}
}
uploadTheFile 関数では、Validator を使用しました。
ビューをアップロードするために、この関数を作成しました。 したがって、「resourcesviewsfile-upload.blade.php」にある Laravel ビューにビューを作成する必要があります。
ファイルをアップロードするためのビューを作成しましょう。
コードをコピーしてビューに貼り付けます。
<html 言語=「えん」>
<頭>
<メタ文字セット=「utf-8」 />
<メタ名=「csrf-トークン」 コンテンツ=“{{ csrf_token() }}”>
<メタ名=「ビューポート」 コンテンツ=“幅=デバイス幅、初期スケール=1.0”>
<リンク href=「https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css” 関係=「スタイルシート」
威厳=“sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBl6DOitfPri4tjfHxaWutUpFmBp4vmVor” クロスオリジン=“匿名”>
<スクリプトソース=「https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js”
威厳=“sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2” クロスオリジン=“匿名”>
頭>
<体>
<div クラス=“容器”>
<分周 クラス=「col-lg-12」>
<分周 クラス=「カードボックス」>
<分周>
メッセージ
@もしも ($エラー->どれか())
@foreach ($エラー->全て() なので $エラー)
<分周>{{$エラー}}分周>
@エンドフォーチ
@終了
分周>
分周>
分周>
<分周 クラス=「col-lg-12」>
<分周 クラス=「カードボックス」>
<フォームアクション=“{{ route(‘uploadTheFile’) }}” 方法=“役職” enctype=「マルチパート/フォームデータ」>
@CSRF
<分周 クラス=「フォームグループ」>
<ラベル 為に=“名前”>ファイルをアップロードするラベル>
<入力方式=“ファイル” クラス=「フォームコントロール」 名前=「アタッチメント」 必要>
分周>
<分周 クラス=「テキスト右」>
<ボタンタイプ=“参加する” クラス=「btn btn-成功波-効果波-光」>保存ボタン>
分周>
形>
分周>
分周>
分周>
html>
ここで、プロジェクトにファイルをアップロードするための 2 つのルートを作成する必要があります。
ルート::得る(「/ファイルビュー」、 [FileUploadController::class, ‘fileview’])->名前(「ファイルビュー」);
ルート::役職(「/ファイルアップロード」、 [FileUploadController::class, ‘uploadTheFile’])->名前(「ファイルをアップロード」);
ルートが作成されたら、「/file-view」に移動すると、ブラウザーで次の画像のように表示されます。
プロセス 4. FileUpload プロジェクトの実行とテスト
ここで、コマンドを実行し、ファイルのアップロードが機能しているかどうかを確認する必要があります。
チェック用のルートでコードが動いているかどうかを確認する必要があります。
ファイルを選択して、アップロードを試みます。 私の場合、うまくいきました。
ファイルがアップロードされると、次の場所にあります。
画像はこちら
また、データベースに挿入されます。
結論
この記事では、Laravel 9 でこの Laravel FileUpload プロジェクトを作成しました。Laravel で FileUpload を使用してデータ テーブルを作成すると、ファイルを再度呼び出すのに非常に便利です。 この FileUpload プロジェクトの例が、Laravel 9 でのファイルのアップロードを理解するのに役立つことを願っています。
The post Laravel 9 ファイルアップロードチュートリアル appeared first on Gamingsym Japan.