Bagaimana cara saya mengatur ekstensi yang diizinkan untuk bidang formulir managed_file?


27

Tidak beruntung menemukan ini dalam dokumentasi Drupal atau contoh pengembang. Saya perlu mengatur bidang formulir managed_file untuk hanya mengizinkan file zip dalam modul kustom Drupal 7.

Jawaban:


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
Saya mencoba file_validate_size, tetapi tidak berfungsi.
ARUN

Tidak berhasil bagiku.
Mr_DeLeTeD

apakah kita berasal dari $ foo?
khaled_webdev

Sepertinya validasi tidak terjadi secara otomatis jika Anda menyimpan file secara manual. Saya harus melakukannya seperti ini:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

Ini juga berfungsi di Drupal 8.
sanzante

1

Saya tidak yakin apakah Anda menggunakan Drupal 6 atau Drupal 7, tetapi di Drupal 6 Anda akan memilih:

  • Admin > Konten > Jenis Konten > [Jenis Konten Anda]> Kelola Bidang > [Edit bidang file Anda] dan cari pengaturan bidang "Ekstensi file unggahan yang diizinkan"

  • Di bidang itu, masukkan zip

Drupal 7 mungkin serupa. Cari Jenis Konten di bawah Admin > Struktur .


Drupal 7, maaf atas kelalaiannya. Saya menggunakan item formulir managed_field dalam modul khusus, jadi admin tidak akan membantu. Saya butuh solusi pemrograman.
Garrett

4
Saya yakin Anda dapat menggunakan #upload_validators: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
DEKAT DARK

DEKAT DARK memenangkannya. Butuh menempelkan di baris itu untuk menyadari bahwa saya memiliki kesalahan ketik dalam array item bentuk asli saya. Jadi pada dasarnya, ini adalah fitur yang terdokumentasi dengan baik dari form api yang tidak saya dapatkan karena kesalahan ejaan. Maaf kawan
Garrett

Catatan: tidak ada bidang formulir managed_file di Drupal 6, hanya file. Sumber: Referensi API Formulir Drupal 6
Bart
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.