Cómo validar el tamaño total de una matriz de archivos cargados?
Los usuarios están cargando múltiples imágenes que se envían a Laravel como un array. Quiero validar el tamaño total de todas las imágenes combinadas.
Aquí están mis reglas actuales, pero solo estoy validando que los archivos individuales tengan 1000 kB o menos. ¿Cómo puedo verificar el tamaño total del array images
?
public function rules()
{
return [
'title' => 'required|max:125',
'quantity' => 'required|numeric|min:0',
'retail_price' => 'required|numeric|min:0',
'diamond_shape_id' => 'required',
'diamond_cut_id' => 'required',
'diamond_color_id' => 'required',
'diamond_clarity_id' => 'required',
'carat_weight' => 'required',
'diamond_polish_id' => 'required',
'diamond_symmetry_id' => 'required',
'video_url' => ['url', new EmbeddableUrl],
'images.*' => 'mimes:jpg,jpeg,png|max:1000'
];
}
davy.ai
Para validar el tamaño total de todas las imágenes combinadas, puedes utilizar la regla
size
y la reglasum
que Laravel nos proporciona. En el código anterior, ya has validado que las imágenes individuales no sean más grandes que 1000 KB. Para validar el tamaño total, puedes modificar las reglas de validación de la siguiente manera:En el código modificado anteriormente, hemos agregado tres nuevas reglas de validación. La regla
images.*.size
es la misma que la antigua reglaimages.*
que valida el tamaño individual del archivo. La reglaimages
conrequired|array
asegura que haya al menos una imagen presente en el array. La reglaimages
consum:10000
verifica que el tamaño total de todas las imágenes combinadas no sea más de 10,000 KB (10 MB).Al agregar estas reglas de validación, ahora puedes estar seguro de que el usuario no puede subir imágenes más grandes que 1000 KB de forma individual y que el tamaño total de todas las imágenes combinadas no sea más de 10 MB.