Problema con $_FILES al mezclar archivos con otros input
Publicado por Alberto (5 intervenciones) el 29/09/2019 13:00:16
Buen día para todos,
estoy lidiando con lo que considero un error mio y me gustaría saber que es lo que hago mal.
Tengo un formulario para subir un archivo, de hecho permite selección múltiple, que funciona bien. El código sería así:
Como es de esperar toda la información es almacenada en la variable $_FILES
El problema ocurre al agregar cualquier otro campo al formulario, si bien el archivo es subido, en $_FILES aparecen entradas que se corresponden con los campos agregados al formulario. Según entiendo esto no debería suceder. La información que pude leer dice que $_FILES solo debería contener la información relativa a los archivos, mientras que $_POST debería almacenar el resto de la información.
Si bien podría manejar esta situación, con algún parche, la lógica de control de errores se ve perjudicada. PHP agrega una entrada en $_FILES para cada campo extra del formulario e informa que se produjo un error...
Por ejemplo con un formulario así:
A riesgo de cansar pongo en palabras un ejemplo: si utilizo este último formulario para subir un solo archivo, en $_FILES obtengo dos entradas, una para el archivo y otra para el campo extra donde php informa que se produjo un error...
Asumo que estoy cometiendo un error pero soy incapaz de darme cuenta cual.... ¿me podrán dar una ayuda?
Muchas gracias a todos por su tiempo y paciencia.
Saludos!
estoy lidiando con lo que considero un error mio y me gustaría saber que es lo que hago mal.
Tengo un formulario para subir un archivo, de hecho permite selección múltiple, que funciona bien. El código sería así:
1
2
3
4
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile[]" multiple=""/>
<button name="boton2" type="submit">Subir</button>
</form>
Como es de esperar toda la información es almacenada en la variable $_FILES
El problema ocurre al agregar cualquier otro campo al formulario, si bien el archivo es subido, en $_FILES aparecen entradas que se corresponden con los campos agregados al formulario. Según entiendo esto no debería suceder. La información que pude leer dice que $_FILES solo debería contener la información relativa a los archivos, mientras que $_POST debería almacenar el resto de la información.
Si bien podría manejar esta situación, con algún parche, la lógica de control de errores se ve perjudicada. PHP agrega una entrada en $_FILES para cada campo extra del formulario e informa que se produjo un error...
Por ejemplo con un formulario así:
1
2
3
4
5
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="userfile[]" multiple=""/>
<input type="hidden" name="test" value="250" />
<button name="boton2" type="submit">Subir</button>
</form>
A riesgo de cansar pongo en palabras un ejemplo: si utilizo este último formulario para subir un solo archivo, en $_FILES obtengo dos entradas, una para el archivo y otra para el campo extra donde php informa que se produjo un error...
Asumo que estoy cometiendo un error pero soy incapaz de darme cuenta cual.... ¿me podrán dar una ayuda?
Muchas gracias a todos por su tiempo y paciencia.
Saludos!
Valora esta pregunta


0