13.5. Validador de archivos

13.5.1. sfValidatorFile

sfValidatorFile valida los archivos subidos por los usuarios. Además, el validador convierte el archivo subido en una instancia de la clase sfValidatedFile o de la clase que se indique en la opción validated_file_class.

Opción Error Descripción
max_size max_size El tamaño máximo permitido para los archivos subidos
mime_types mime_types Array con los tipos MIME permitidos o el nombre de la categoría de tipos MIME (la única categoría disponible es web_images)
mime_type_guessers - Array con los ejecutables de PHP encargados de adivinar el tipo MIME de los archivos (deben devolver o el tipo MIME o null)
mime_categories - Array de categorías de tipos MIME (la categoría web_images está definida por defecto)
path - La ruta en la que se guarda el archivo y que utiliza la clase sfValidatedFile (opcional)
validated_file_class - Nombre de la clase que gestiona el archivo subido y validado (opcional)

La categoría web_images incluye los siguientes tipos MIME:

  • image/jpeg
  • image/pjpeg
  • image/png
  • image/x-png
  • image/gif

Si la opción mime_types está activada, el validador necesita comprobar el tipo MIME del archivo subido. Por este motivo el validador ya incluye tres comprobadores de tipos MIME:

  • guessFromFileinfo: utiliza la función finfo_open() (de la extensión Fileinfo de PECL)
  • guessFromMimeContentType: utiliza la función mime_content_type() (obsoleto)
  • guessFromFileBinary: utiliza el contenido del propio archivo (sólo funciona en los sistemas *nix)
Error Variables Valor por defecto (se muestra en inglés)
max_size %size%, %max_size% File is too large (maximum is %max_size% bytes).
mime_types %mime_types%, %mime_type% Invalid mime type (%mime_type%).
partial The uploaded file was only partially uploaded.
no_tmp_dir Missing a temporary folder.
cant_write Failed to write file to disk.
extension File upload stopped by extension.

El validador asocia los errores de PHP de la siguiente manera:

  • UPLOAD_ERR_INI_SIZE: max_size
  • UPLOAD_ERR_FORM_SIZE: max_size
  • UPLOAD_ERR_PARTIAL: partial
  • UPLOAD_ERR_NO_TMP_DIR: no_tmp_dir
  • UPLOAD_ERR_CANT_WRITE: cant_write
  • UPLOAD_ERR_EXTENSION: extension
Puedes sugerir, comentar, criticar e informar de errores en contacto (arroba) librosweb.es
« Anterior
13.4. Validadores de fechas
Siguiente »
13.6. Validadores lógicos
Los contenidos originales de este sitio están bajo una licencia de Creative Commons. Las traducciones disponen cada una de su propia licencia.