ฉันจะตั้งค่าส่วนขยายที่อนุญาตสำหรับเขตข้อมูลฟอร์ม managed_file ได้อย่างไร


27

ไม่พบโชคในเอกสารประกอบของ Drupal หรือตัวอย่างผู้พัฒนา ฉันต้องตั้งค่าเขตข้อมูลแบบฟอร์ม managed_file ให้อนุญาตเฉพาะไฟล์ซิปในโมดูลที่กำหนดเอง Drupal 7

คำตอบ:


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 แล้ว แต่มันไม่ทำงาน
ARUN

มันใช้งานไม่ได้สำหรับฉัน
Mr_DeLeTeD

เรามาจาก $ foo หรือเปล่า
khaled_webdev

ดูเหมือนว่าการตรวจสอบจะไม่เกิดขึ้นโดยอัตโนมัติหากคุณบันทึกไฟล์ด้วยตนเอง ฉันต้องทำเช่นนี้:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

สามารถใช้งานได้ใน Drupal 8
sanzante

1

ฉันไม่แน่ใจว่าคุณกำลังใช้ Drupal 6 หรือ Drupal 7 แต่ใน Drupal 6 คุณจะเลือก:

  • ผู้ดูแลระบบ > เนื้อหา > ประเภทเนื้อหา > [ประเภทเนื้อหาของคุณ]> จัดการฟิลด์ > [แก้ไขช่องไฟล์ของคุณ] และค้นหาการตั้งค่าฟิลด์ของ"นามสกุลไฟล์ที่อัปโหลดที่อนุญาต"

  • ในฟิลด์นั้นให้ป้อนรหัสไปรษณีย์

Drupal 7 อาจคล้ายกัน มองหาชนิดเนื้อหาภายใต้การดูแลระบบ > โครงสร้าง


Drupal 7 ขอโทษที่ไม่สนใจ ฉันกำลังใช้ไอเท็มฟอร์ม managed_field ในโมดูลที่กำหนดเองดังนั้นผู้ดูแลระบบจะไม่ช่วยเหลือ ฉันต้องการโซลูชันการเขียนโปรแกรม
Garrett

4
ฉันเชื่อว่าคุณสามารถใช้ #upload_validators: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
ใกล้

ใกล้จะชนะได้ ต้องใช้การวางในบรรทัดนั้นเพื่อรับรู้ว่าฉันมีการพิมพ์ผิดในอาร์เรย์ไอเท็มฟอร์มดั้งเดิมของฉัน ดังนั้นโดยทั่วไปนี่เป็นคุณลักษณะที่บันทึกไว้อย่างดีของแบบฟอร์ม api ที่ฉันไม่ได้รับเนื่องจากข้อผิดพลาดในการสะกด ขอโทษนะเพื่อน.
Garrett

หมายเหตุ: ไม่มีฟิลด์แบบฟอร์ม managed_file ใน Drupal 6 ไฟล์เท่านั้น ที่มา: การอ้างอิง API ของ Drupal 6 Form
Bart
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.