Pregunta

Estoy tratando de extender un formulario y agregar un campo de archivo de carga desde un módulo, puedo ver el campo de archivo muy bien, pero está vacío cuando envío el formulario, el enctype está configurado.

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

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

enlace personalizado para enviar formulario:

$form['#submit'][] = 'user_images_handler';
Se llama a

, pero cuando vuelco el formulario, el campo del archivo está vacío, y cuando intento acceder a él, también está vacío.

¿Fue útil?

Solución

Las cargas de archivos son especiales porque los datos 'enviados' (cargados) no terminan en el formulario, sino que deben procesarse por separado (la carga no es realmente una parte del envío del formulario sino un proceso de transmisión separado).

Consulte los documentos para file_save_upload () , y como ejemplo, vea cómo se usa en el uso de envío de formularios desde la carga módulo .

Básicamente, solo intenta guardar la carga llamando a file_save_upload () con el nombre del campo de carga (y algunos otros argumentos) y verifica el resultado de este intento.

Otros consejos

Hmm, intenté eso y no funcionó ... todavía dice que el campo de carga está vacío. Tengo una declaración de impresión de depuración en la función de envío, pero no se imprime, así que no creo que esté llegando a la función de envío.

¿Dónde se supone que debe poner la llamada file_save_upload ()?

Nota, mi formulario se llama mmil_upload_form ($ form_state) y la función de envío se llama function mmil_upload_form_submit ($ form, & amp; $ form_state)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top