2009-10-27 2 views
2

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

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

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

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

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

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

ответ

2

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

См. docs for file_save_upload(), и, как пример, см., Как это used on form submission usage from within the upload module.

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

0

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

Куда вы можете поместить вызов file_save_upload()?

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

 Смежные вопросы

  • Нет связанных вопросов^_^