precargados para mostrar los guardar formularios formulario datos consulta con como cargar autollenado php html multipartform-data

para - PHP-análisis de datos de formularios multiparte



formulario para mostrar datos php (7)

Estoy tratando de armar un formulario HTML POST-ed que tiene dos campos: una carga de archivos y un campo de texto. Dado que el formulario tiene un tipo multipart / form-data para la carga del archivo, no puedo acceder al campo de texto a través de la variable PHP $ _POST normal. Entonces, ¿cómo puedo obtener en el campo de texto en el formulario con PHP?

Según lo solicitado, aquí hay un código, básicamente tomado directamente de Andrew:

<html> <body> <form action="test2.php" method="post" enctype="multipart/form-data"> Name: <input type="text" name="imageName" /> Image: <input type="file" name="image" /> <input type="submit" value="submit" /> </form> </body> </html> <?php echo $_POST[''imageName'']; echo "<pre>"; echo var_dump($_FILES[''image'']); echo "</pre>"; ?>

Ese es todo el archivo de prueba. Si elimino el enctype, puedo obtener los datos POST-ed, pero no el archivo, por supuesto. Con el enctype como multipart / form-data, puedo obtener el archivo, pero nada de los datos POST-ed.

Aquí está la salida con el enctype:

array(5) { ["name"]=> string(34) "testing.png" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(1) ["size"]=> int(0) }

Sin:

testing NULL

La misma entrada exacta ambas veces.


Los archivos $_FILES vienen a través de $_FILES . Todo lo demás viene a través de $_POST (asumiendo que, por supuesto, su formulario HTML tenía su atributo de method configurado para "post" ).




Revise su límite de mensajes. Me estaba volviendo loca tratando de averiguar qué estaba causando esto. Una comprobación rápida del registro de errores de Apache mostró que la longitud del contenido de la publicación superó el límite. Después de elevar el límite, los datos de la publicación están disponibles.


Tuve el mismo problema que se muestra al principio. Inténtelo cargando un tamaño de archivo inferior a 1 MB. Si ha podido cargarlo, entonces su problema es que los valores de upload_max_filesize y post_max_size aumentan esos valores y lo intentan de nuevo. Esta fue la solución a mi problema.


[2010-02-13 10:57 UTC] sudeshkmr en yahoo dot com

Me enfrenté al mismo problema y nada funcionó. He probado en Apache 2.2, PHP 5.3 en Windows Vista. También probé en Ubuntu (Karmic) con Apache 2.2 y PHP 5.3. También probé con nGinX 0.8 y PHP 5.3.

Entonces encontré una solución. El parámetro action = "" no debe ser la página del script en la que tiene el formulario de carga de archivos. Por ejemplo, tienes una página index.php con el formulario de carga.

La acción = "upload.php" <-------- ¡Esta página debe ser diferente a la página del formulario de carga de archivos, y funciona en todas las configuraciones de PHP!

No utilizar para el parámetro de acción.


$_POST debería funcionar bien para el campo de texto. Deberá usar $_FILES para el archivo real. Dado el siguiente HTML:

<html> <body> <form action="self.php" method="post" enctype="multipart/form-data"> Name: <input type="text" name="imageName" /> Image: <input type="file" name="image" /> <input type="submit" value="Submit" /> </form> </body> </html>

Puede acceder a los campos de la siguiente manera:

<?php echo $_POST[''imageName'']; echo "<pre>"; echo var_dump($_FILES[''image'']); echo "</pre>"; ?>