Laravelで画像の最大サイズ検証を行う方法


  1. バリデーションルールの作成: まず、画像の最大サイズを検証するためのバリデーションルールを作成します。App\Http\Requestsディレクトリ内に新しいリクエストクラスを作成し、以下のようにルールを定義します。
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ImageUploadRequest extends FormRequest
{
    public function rules()
    {
        return [
            'image' => 'max:2048', // 最大サイズは2MB (2048KB)
        ];
    }
}

上記の例では、imageフィールドの最大サイズを2MBに制限しています。

  1. コントローラでバリデーションを実行: 次に、作成したバリデーションルールを使用して、画像の最大サイズを検証します。これは、コントローラのメソッド内で行います。以下に例を示します。
namespace App\Http\Controllers;
use App\Http\Requests\ImageUploadRequest;
use Illuminate\Http\Request;
class ImageController extends Controller
{
    public function upload(ImageUploadRequest $request)
    {
        // バリデーションを通過した場合の処理
        // 画像のアップロードなどの操作を行う
    }
}

上記の例では、uploadメソッド内でImageUploadRequestを型指定しています。これにより、リクエストがバリデーションルールに合致しない場合は自動的にエラーレスポンスが返されます。

これで、Laravelで画像の最大サイズ検証を行う準備が整いました。以上の手順に従って実装することで、アップロードされる画像のサイズを制限することができます。