Come posso impostare le estensioni consentite per un campo modulo managed_file?


27

Non avendo fortuna a trovare questo nella documentazione Drupal o esempi di sviluppatori. Devo impostare un campo del modulo managed_file per consentire solo i file zip in un modulo personalizzato Drupal 7.

Risposte:


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
Ho provato il file_validate_size, ma non funziona.
ARUN,

Per me non funziona.
Mr_DeLeTeD,

veniamo da $ pippo?
khaled_webdev,

Sembra che la convalida non avvenga automaticamente se si salva un file manualmente. Ho dovuto farlo in questo modo:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat,

Questo funziona anche in Drupal 8.
sanzante,

1

Non sono sicuro se stai usando Drupal 6 o Drupal 7, ma in Drupal 6 sceglieresti:

  • Ammin. > Contenuto > Tipi di contenuto > [Il tuo tipo di contenuto]> Gestisci campi > [Modifica il campo del file] e cerca l'impostazione del campo "Estensioni di file di caricamento consentite"

  • In quel campo, inserisci zip

Drupal 7 è probabilmente simile. Cerca i tipi di contenuto in Ammin. > Struttura .


Drupal 7, scusami per l'omissione. Sto usando un elemento del modulo managed_field in un modulo personalizzato, quindi l'amministratore non sarà di aiuto. Ho bisogno di una soluzione di programmazione.
Garrett,

4
Credo che tu possa usare #upload_validators: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
VICINO SCURO il

NEAR DARK lo vince. Ci è voluto incollare in quella riga per rendersi conto che avevo un refuso nella mia matrice di elementi del modulo originale. Quindi in sostanza, questa è una caratteristica ben documentata del modulo API che non stavo ottenendo a causa di un errore di ortografia. Scusate ragazzi.
Garrett,

Nota: non esiste un campo modulo managed_file in Drupal 6, solo file. Fonte: Drupal 6 Modulo riferimento API
Bart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.