もっと詳しく

Laravelのファイル検証とは?

Laravel バリデーションは、バリデーションの役割を実行する方法です。 ファイルの種類、ファイルのサイズなどを確認できます。通常、ファイルの検証は、サーバーまたはアプリケーションでの不要なファイルのアップロードを回避するために使用されます。

今日は、Laravel 9 でのファイルのアップロードと保存について学びます。

プロジェクトの要件は次のとおりです。

  • MySQL 8.0+
  • マリアDB 10.2+
  • PHP 8.1

FileUpload を定義する例を次に示します。

  1. プロセス 1. FileUpload プロジェクトを作成する
  2. プロセス 2. FileUpload プロジェクト データベース接続
  3. プロセス 3. FileUpload プロジェクトでモデルとコントローラーを作成する
  4. プロセス 4. FileUpload プロジェクトを実行してテストする

プロセス 1. FileUpload プロジェクトを作成する

ステップ1は、このコマンドラインを実行して、サーバーまたはPCにLaravel 9をインストールすることです. そのためには、フォルダー内の Windows SSH ターミナルを開く必要があります。

作曲家の作成プロジェクトLaravel/Laravelファイルのアップロード

プロセス 2. FileUpload プロジェクト データベース接続

FileUpload プロジェクトの .env ファイルを開き、新しいデータベース名、ユーザー名、およびパスワードを追加します。

次のコードは次のとおりです。

DB_CONNECTION=mysql

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 ビューにビューを作成する必要があります。

ファイルをアップロードするためのビューを作成しましょう。

コードをコピーしてビューに貼り付けます。

DOCTYPE html>
<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.