Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Limit number of files that can be uploaded

How can I limit the number of files that can be uploaded?

The max validation seems to apply to the size of the image (in kilobytes). How can I make a validation for the maximum number of files allowed to be uploaded (for example, only 10 files can be uploaded from a single input)?


1 Answers

How I did in laravel 7.x

Create a new form request class with the following command

php artisan make:request UploadImageRequest

use Illuminate\Foundation\Http\FormRequest;
use App\Http\Requests\BaseFormRequest;

class UploadImageRequest extends BaseFormRequest
{
public function authorize()
{
  return true;
}

public function rules()
{
  return [
    'coverImage.*' => 'image|mimes:png,jpg,jpeg,gif,svg|max:2048',
    'coverImage' => 'max:5',
  ];
} 

public function messages() {
  return [
    'coverImage.*.max' => 'Image size should be less than 2mb',
    'coverImage.*.mimes' => 'Only jpeg, png, bmp,tiff files are allowed.',
    'coverImage.max' => 'Only 5 images are allowed'
  ];
}

in View.blade.php

<input type="file" id="coverImage" name="coverImage[]"
                        class="form-control-file @error('coverImage') is-invalid @enderror" multiple>                        
@error('coverImage')
 <span class="text-danger">{{ $message }}</span>
@enderror

in controller

public function store(UploadImageRequest $request)
{
  //code
}
like image 77
Sujay Avatar answered Oct 17 '25 22:10

Sujay