¿Cómo configuro extensiones permitidas para un campo de formulario de archivo_administrado?


27

Al no tener suerte, encuentre esto en la documentación de Drupal o en ejemplos de desarrolladores. Necesito establecer un campo de formulario managed_file para permitir solo archivos zip en un módulo personalizado de Drupal 7.

Respuestas:


40
$form['picture']['file'] = array(
  '#type' => 'managed_file',
  '#title' => t('picture'),
  '#description' => t('Allowed extensions: gif png jpg jpeg'),
  '#default_value' => (isset($foo->picture->fid) ? $foo->picture->fid : ''),
  '#upload_location' => variable_get('picture_upload_location'),
  '#upload_validators' => array(
    'file_validate_extensions' => array('gif png jpg jpeg'),
    // Pass the maximum file size in bytes
    'file_validate_size' => array(MAX_FILE_SIZE*1024*1024),
  ),
);

1
Intenté el file_validate_size, pero no funciona.
ARUN

No me funciona.
Mr_DeLeTeD

venimos de $ foo?
khaled_webdev

Parece que la validación no ocurre automáticamente si guarda un archivo manualmente. Tenía que hacerlo así:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

Esto también funciona en Drupal 8.
sanzante

1

No estoy seguro si está utilizando Drupal 6 o Drupal 7, pero en Drupal 6 elegiría:

  • Admin > Contenido > Tipos de contenido > [Su tipo de contenido]> Administrar campos > [Editar su campo de archivo] y busque la configuración de campo de "Extensiones de archivo de carga permitidas"

  • En ese campo, ingrese zip

Drupal 7 es probablemente similar. Busque Tipos de contenido en Administrador > Estructura .


Drupal 7, perdón por la omisión. Estoy usando un elemento de formulario managed_field en un módulo personalizado, por lo que el administrador no va a ayudar. Necesito una solución de programación.
Garrett

44
Creo que puede usar #upload_validators: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
CERCA

NEAR DARK lo gana. Me tomó pegar en esa línea para darme cuenta de que tenía un error tipográfico en mi matriz de elementos de forma original. Básicamente, esta es una característica bien documentada de la API de formulario que no estaba obteniendo debido a un error ortográfico. Lo siento chicos.
Garrett

Nota: no hay un campo de formulario de archivo_gestionado en Drupal 6, solo archivo. Fuente: Referencia de la API del formulario Drupal 6
Bart
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.