Есть ли подходящий Drupal 7 form api managed_file?

Я искал через Интернет полчаса, но не могу найти его.

Я хочу использовать форму управляемого файла api в D7, чтобы разрешить использовать файл загружаемого изображения; более конкретно, я думаю, что свойство #upload_validators может сделать трюк (если возможно, проверить расширение файла перед загрузкой или, по крайней мере, проверить на фазе проверки, но не в функции отправки). Я проверил image_example и file_example в примерах модулей, но не могу найти его правильное использование.

Итак, интересно, есть ли подходящий учебник по управляемому файлу? Большое спасибо.

Обновление: я увидел пример после выполнения поиска в каталоге drupal из файла file.field.inc и, следуя примеру, написал такой код:

$form['file_upload'] = array(
  '#type'   => "managed_file",
  '#title'  => t("Upload"),
  '#descripion' => t("Only Image Files are allowed."),
  '#progress_indicator' => "bar",
  '#upload_location'    => "public://img/dish",
  "#upload_validators"  => array("file_validate_extensions" => "png gif jpg"),
);

Это решило проблему.

Ответ 1

Вот пример используемого поля managed_file, который включает #upload_validators, взятый из https://drupal.stackexchange.com/a/5630/1103

$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),
  ),
);