Manage_file form alanı için izin verilen uzantıları nasıl ayarlarım?


27

Drupal belgelerinde veya geliştirici örneklerinde hiç şansın olmaması. Dunkal 7 özel modülündeki zip dosyalarına sadece izin vermek için bir edep_dosyası form alanı ayarlamam gerekiyor.

Yanıtlar:


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
File_validate_size dosyasını denedim, ancak çalışmıyor.
ARUN

Benim için işe yaramıyor.
Mr_DeLeTeD

Wehre $ foo geliyor?
khaled_webdev

Bir dosyayı manuel olarak kaydederseniz doğrulama otomatik olarak gerçekleşmez. Böyle yapmak zorunda kaldım:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

Bu, Drupal 8'de de çalışıyor.
sanzante

1

Drupal 6 veya Drupal 7 kullanıp kullanmadığınızdan emin değilim, ancak Drupal 6'da şunları tercih edersiniz:

  • Yönetici > İçerik > İçerik Türleri > [İçerik Türünüz]> Alanları Yönet > [Dosya alanınızı düzenleyin] ve "İzin verilen yükleme dosya uzantılarının" alan ayarını arayın

  • Bu alana zip girin

Drupal 7 muhtemelen benzerdir. Yönetici > Yapı altında İçerik Türlerini arayın .


Drupal 7, ihmal için özür dilerim. Özel bir modülde manage_field form öğesini kullanıyorum, bu yüzden yönetici yardımcı olmayacak. Bir programlama çözümüne ihtiyacım var.
Garrett

4
#Upload_validators kullanabileceğinizi düşünüyorum: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
YAKIN KOYU

NEAR DARK onu kazanır. Orijinal form item dizimde bir yazım hatası olduğunu fark etmek için bu çizgiyi yapıştırmak gerekiyordu. Temel olarak, bu bir yazım hatası nedeniyle alamadığım api formunun iyi belgelenmiş bir özelliğidir. Üzgünüm beyler.
Garrett

Not: Drupal 6'da, yalnızca dosyada manage_file form alanı yoktur. Kaynak: Drupal 6 Form API referansı
Bart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.