2011-07-27 17 views
26

Bien, este es el escenario:¿Puedes rellenar entradas de archivos después de enviar el formulario incorrectamente con PHP o JavaScript?

El usuario tiene una forma que contiene entradas de archivo. El usuario envía un formulario. El formulario no pasa la validación/verificación por una razón u otra. El usuario presenta el formulario con los errores resaltados. Las entradas de archivo ahora están en blanco.

Pregunta:

¿Es posible volver a poblar las entradas de archivos con las rutas a los archivos del usuario seleccionado originalmente. Una solución de PHP sería ideal, pero también estoy abierto a las soluciones de JavaScript.

+6

Este es un duplicado de http://stackoverflow.com/questions/4205634/restoring-the-value- of-a-input-type-file-after-failed-validation –

+0

Ah sí ... olvidé por completo el aspecto de seguridad ... cerraré la pregunta. – diggersworld

+0

¿La gente puede ayudarme a cerrar esto ... necesita más? – diggersworld

Respuesta

38

Creo que la respuesta corta aquí es no. No puede volver a llenar los campos de carga de archivos. Sin embargo, puedes evitarlo.

Si se ha seleccionado un archivo y se ha enviado el formulario, ya ha recibido el archivo. Lo que puede hacer es mantener una referencia al archivo en el disco y ponerlo en un campo oculto y mostrar un mensaje para indicarle al usuario que todavía tiene su archivo cargado para que no necesite ser reemplazado/re-cargado. Cuando su formulario se envía nuevamente sin un archivo, puede verificar el valor del campo oculto y usarlo para obtener su copia local del archivo que cargaron en su último intento.

La otra forma de hacerlo es enviar el formulario a través de ajax (utilizando el método flash o iframe para la carga del archivo) o realizar una llamada ajax para validar primero el formulario y luego enviarlo normalmente si válido (por lo tanto no hay recarga de formulario, no hay pérdida de datos de campo de carga de archivo).

+2

Esto suena como un trabajo decente. – diggersworld

1

He resuelto este problema por let archivo de selección de usuario de carga como el último campo antes de enviar el formulario ^^

+0

¡Eso es tan inteligente! – conradkdotcom

+0

@conradkdotcom ^^ –

Cuestiones relacionadas