Drupal 6 hook_form_FORM_ID_alter добавление поля загрузки файла - PullRequest
2 голосов
/ 27 октября 2009

Я пытаюсь расширить форму и добавить поле загружаемого файла из модуля, я вижу поле файла просто отлично, но при отправке формы оно пустое, установлен enctype.

  $form['#attributes'] = array(
    'enctype' => "multipart/form-data"
  );

  $form['file_upload'] = array(
    '#type' => 'file',
    '#title' => 'Attach Image'
  );

пользовательская форма отправки крючка:

$form['#submit'][] = 'user_images_handler';

вызывается, но когда я выкидываю форму, поле файла становится пустым, а когда я пытаюсь получить к нему доступ, оно также становится пустым.

Ответы [ 2 ]

2 голосов
/ 27 октября 2009

Загрузка файлов отличается тем, что «отправленные» (загруженные) данные не попадают в форму, а должны обрабатываться отдельно (загрузка на самом деле не является частью отправки формы, а представляет собой отдельный процесс передачи).

См. документы для file_save_upload() и, в качестве примера, посмотрите, как используется при отправке формы из модуля загрузки .

По сути, вы просто пытаетесь сохранить загрузку, вызвав file_save_upload() с именем поля загрузки (и некоторыми другими аргументами) и проверьте результат этой попытки.

0 голосов
/ 15 июня 2010

Хм, я попробовал это, и это не сработало ... оно все еще говорит, что поле загрузки пусто. У меня есть отладочная инструкция print в функции submit, но она не печатается, поэтому я не думаю, что она даже достигает функции submit.

Куда вы положили вызов file_save_upload ()?

Обратите внимание, моя форма называется mmil_upload_form ( $form_state ), а функция отправки называется function mmil_upload_form_submit ( $form, &$form_state )

...