Drupal 6 hook_form_FORM_ID_alter acrescentando campo de upload de arquivo
Pergunta
Eu estou tentando estender um formulário e adicionar um campo de upload de arquivo de dentro de um módulo, eu posso ver o campo de arquivo muito bem, mas ele está vazio quando eu enviar o formulário, o enctype é conjunto.
$form['#attributes'] = array(
'enctype' => "multipart/form-data"
);
$form['file_upload'] = array(
'#type' => 'file',
'#title' => 'Attach Image'
);
formulário personalizado enviar gancho:
$form['#submit'][] = 'user_images_handler';
está sendo chamado, mas quando eu despejar o formulário, o campo arquivo está vazio, e quando eu tentar acessá-lo, ele está vazio também.
Solução
Carregamentos de arquivos são especiais em que os dados 'apresentados' (upload) não acabar na forma, mas precisa ser processados ??separadamente (upload não é realmente uma parte do envio do formulário, mas um processo de transmissão separado).
Veja as docs para file_save_upload()
, e como exemplo, veja como é usado no uso formulário de submissão de dentro do carregamento módulo .
Basicamente, você só tentar salvar o carregamento chamando file_save_upload()
com o nome do campo de upload (e alguns outros argumentos) e verificar o resultado desta tentativa.
Outras dicas
Hmm, eu tentei isso e não funcionou ... ele ainda diz que o campo de upload está vazio. Eu tenho uma declaração de impressão de depuração na função enviar mas não imprime então eu não acho que isso é mesmo recebendo para a função de enviar.
Onde você está supor para colocar a chamada file_save_upload ()?
Note, a minha forma é nomeado mmil_upload_form ( $form_state )
ea enviar função é chamada de function mmil_upload_form_submit ( $form, &$form_state )