Làm cách nào để đặt tiện ích mở rộng được phép cho trường biểu mẫu Managed_file?


27

Không có bất kỳ may mắn tìm thấy điều này trong tài liệu Drupal hoặc ví dụ nhà phát triển. Tôi cần đặt trường biểu mẫu Managed_file để chỉ cho phép các tệp zip trong mô-đun tùy chỉnh Drupal 7.

Câu trả lời:


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
Tôi đã thử file_validate_size, nhưng nó không hoạt động.
ARUN

Nó không hoạt động đối với tôi.
Mr_DeLeTeD

chúng tôi đến từ $ foo?
khaled_webdev 21/07/2015

Có vẻ như xác thực không tự động xảy ra nếu bạn lưu tệp theo cách thủ công. Tôi phải làm như thế này:$file = file_save_upload('file', $form['picture']['file']['#upload_validators']);
Leksat

Điều này cũng hoạt động trong Drupal 8.
sanzante

1

Tôi không chắc chắn nếu bạn đang sử dụng Drupal 6 hoặc Drupal 7, nhưng trong Drupal 6, bạn sẽ chọn:

  • Quản trị viên > Nội dung > Loại nội dung > [Loại nội dung của bạn]> Quản lý trường > [Chỉnh sửa trường tệp của bạn] và tìm cài đặt trường của "Tiện ích mở rộng tệp tải lên được phép"

  • Trong trường đó, nhập zip

Drupal 7 có lẽ tương tự. Tìm các loại nội dung trong Admin > Cấu trúc .


Drupal 7, xin lỗi vì sự thiếu sót. Tôi đang sử dụng một mục biểu mẫu Managed_field trong một mô-đun tùy chỉnh, vì vậy quản trị viên sẽ không giúp đỡ. Tôi cần một giải pháp lập trình.
Garrett

4
Tôi tin rằng bạn có thể sử dụng #upload_validators: $ form ['file'] ['# upload_validators'] ['file_validate_extensions'] [0] = 'png jpg gif pdf';
NEAR DARK

NEAR DARK thắng nó. Phải dán vào dòng đó để nhận ra rằng tôi có một lỗi đánh máy trong mảng mục mẫu ban đầu của tôi. Về cơ bản, đây là một tính năng được ghi lại rõ ràng của mẫu api mà tôi không nhận được do lỗi chính tả. Xin lỗi các bạn.
Garrett

Lưu ý: không có trường mẫu Managed_file trong Drupal 6, chỉ có tệp. Nguồn: Tài liệu tham khảo API mẫu của Drupal 6
Bart
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.