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.

Foi útil?

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 )

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top