validar por mostrar hechos formularios formulario enviar ejemplos datos codigo antes php file-upload multiple-files

por - mostrar datos en formulario php



Cargar múltiples imágenes con un campo de entrada (6)

Funciona de la misma manera que si hubiera varios campos de archivos Docs , es transparente para PHP. Aquí hay un código de ejemplo simple:

<html> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="fileField[]" id="fileField" multiple="multiple"> <input type="text" name="test" value="test"> <input type="submit" name="submit"> </form> </body> </html> <?php var_dump($_FILES, $_POST);

Guárdelo en su host y solicítelo. Luego puede jugar con él, le mostrará la estructura de la $_FILES y $_POST .

Ejemplo de salida:

array ''fileField'' => array ''name'' => array 0 => string ''hakre-iterator-fun-cut-top.png'' (length=30) 1 => string ''hakre-iterator-fun-cut-middle.png'' (length=33) ''type'' => array 0 => string ''image/png'' (length=9) 1 => string ''image/png'' (length=9) ''tmp_name'' => array 0 => string ''/tmp/php1A2.tmp'' (length=15) 1 => string ''/tmp/php1A3.tmp'' (length=15) ''error'' => array 0 => int 0 1 => int 0 ''size'' => array 0 => int 234001 1 => int 213058 array ''test'' => string ''test'' (length=4) ''submit'' => string ''Submit'' (length=6)

Consulte Carga de múltiples archivos de documentos .

He creado un sitio web de fotografía con una página de administración que carga fotos a diferentes categorías en una tabla de MySQL. Esto funciona, pero solo puedo subir un archivo a la vez y me gustaría poder seleccionar varias imágenes.

Aquí está la forma

<form action="index.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post"> <select name="category" id="category"> <option value="Nature">Nature</option> <option value="People">People</option> <option value="Abstract">Abstract</option> </select> <input type="file" name="fileField" id="fileField" /> <input type="submit" name="submit" id="submit" value="Add Images" /> </form>

Y aquí está el php para analizar el formulario

if (isset($_POST[''submit''])) { $category = mysql_real_escape_string($_POST[''category'']); // Add this product into the database now $sql = mysql_query("INSERT INTO images (category, date_added) VALUES(''$category'',now())") or die (mysql_error()); $pid = mysql_insert_id(); // Place image in the folder $newname = "$pid.jpg"; move_uploaded_file( $_FILES[''fileField''][''tmp_name''], "../photos/$newname"); header("location: thumbnail_generator.php"); exit(); }

Miré en el método de entrada de archivo html5, y hasta donde puedo decir, puedo cambiar la entrada como sigue:

<input type="file" name="fileField[]" id="fileField" multiple="multiple"/>

Esto me permite seleccionar varios archivos en el sitio, pero no puedo encontrar la manera de implementar esto en mi php. Cualquier ayuda sería muy apreciada.



Prueba esto

http://www.uploadify.com/demos/

Uploadify es una secuencia de comandos de carga de archivos poderosa y altamente personalizable. Uploadify es fácil de poner en funcionamiento con un mínimo esfuerzo y poco conocimiento de codificación.


recibirás una matriz de imágenes -> fileField []. Simplemente itere a través de este conjunto y agregue las imágenes de la misma manera que las estaba agregando antes. Además, sugiero usar este, muy buen script - http://valums.com/ajax-upload/

EDITAR: ¡No olvide implementar al menos algunas comprobaciones de seguridad, como tamaño mínimo y máximo de carga, extensiones de archivos y verificación tipo mimo! Incluso si es para el back-end, esto aún podría llevar a eventos desagradables.


<form method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="500000"> Add Photos <input multiple="true" onchange="this.form.submit()" type="file" name="photos[]"/> <input type="hidden" name="sendfiles" value="Send Files" /> </form> <?php define ("MAX_SIZE","5000"); function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $errors=0; if(isset($_POST[''sendfiles''])) { $uploaddir = "files/"; //a directory inside foreach ($_FILES[''photos''][''name''] as $name => $value) { $filename = stripslashes($_FILES[''photos''][''name''][$name]); //get the extension of the file in a lower case format $extension = getExtension($filename); $extension = strtolower($extension); echo "/n This is the extension: ",$extension; if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { //print error message ?> <h4>Unknown extension!</h4> <?php $errors=1; } else { $size=filesize($_FILES[''photos''][''tmp_name''][$name]); if ($size > MAX_SIZE*1024) { ?> <h4>You have exceeded the size limit!</h4> <?php $errors=1; } $image_name=$filename.''.''.$extension; $newname="files/".$image_name; $copied = copy($_FILES[''photos''][''tmp_name''][$name], $newname); if (!$copied) { ?> <h4>Copy unsuccessfull!</h4> <?php $errors=1; } } } //echo "Images uploaded successfully"; } //mysql_close($dbhandle); ?>


¿No funcionaría algo así como crear una matriz también? Entonces, ¿qué podría hacer es

$images = array();

Luego, en su forma, solo agrega un botón para agregar a la lista de imágenes. A partir de ahí, ¿sigue agregando tantas imágenes como quiera y luego itera sobre la matriz y agrega a la base de datos?