Использование виджета AJAX загрузки файлов в своих формах

Я как-то упустил из виду, что помимо стандартного способа загрузки файлов в своих формах можно использовать AJAX виджет поля File:

Пример использования:

/**
 * Form builder
 */
function mymodule_myform($form) {
  $form['file'] = array(
    '#type' => 'managed_file',
    '#title' => 'Картинка',
    '#description' => 'Выберите файл с расширением jpg, jpeg, png или gif',
    '#upload_location' => 'public://',
    '#upload_validators' => array(
      'file_validate_is_image' => array(),
      'file_validate_extensions' => array('png gif jpg jpeg'),
      'file_validate_size' => array(1 * 1024 * 1024),
    ),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => 'Отправить',
  );
  return $form;
}
 
/**
 * Form submit callback
 */
function mymodule_myform_submit($form, &$form_state) {
  $file = file_load($form_state['values']['file']);
  $file->status = FILE_STATUS_PERMANENT;
  file_save($file);
  drupal_set_message('Картинка загружена');
}

Написанное актуально для
Drupal 7
Теги:
ajax, upload, работа с файлами, работа с формами
Добавлено: 30 Июля 2018 08:09:30 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...