Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/02/2017, 22:03
JoseA
 
Fecha de Ingreso: septiembre-2003
Ubicación: Capital Federal
Mensajes: 38
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Actualizar a Formulario Multi Upload PHP MYSQL

Hola buenas noches.
Durante varias ocasiones he utilizado el siguiente formulario para subir imágenes al servidor y al mismo tiempo grabar algunos datos en la BD. El archivo form.php es el siguiente:

Código HTML:
Ver original
  1. <meta charset="utf-8">
  2. </head>
  3.             <form>
  4.               <table width="780" border="0" cellspacing="0" cellpadding="0">
  5.   <tbody>
  6.       <tr>
  7.       <td>Descripción</td>
  8.       <td><textarea name="comentario" cols="100" rows="3"  id="comentario"></textarea></td>
  9.     </tr>
  10.     <tr>
  11.       <td>Foto</td>
  12.       <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  13.   <tbody>
  14.     <tr>
  15.       <td><input name="foto" type="file"  id="foto"></td>
  16.       <td></td>
  17.     </tr>
  18.   </tbody>
  19. </td>
  20.     </tr>            
  21.         <tr>
  22.       <td>Fecha</td>
  23.       <td>
  24.         <input type="date" name="fecha" id="fecha"></td>
  25.     </tr>
  26.     <tr>
  27.       <td height="60">&nbsp;</td>
  28.       <td><input name="Submit" type="submit" id="Submit" formaction="insertar_datos.php" formenctype="multipart/form-data" formmethod="POST" value="Grabar Información" ></td>
  29.     </tr>
  30.   </tbody>
  31. </form>
  32. </body>
  33. </html>

El action insertar_datos.php es el siguiente:

Código PHP:
Ver original
  1. <?php
  2. error_reporting(E_ALL ^ E_DEPRECATED);
  3. @ini_set('display_errors', '1');
  4. /*----------- INICIO DE CONFIGURACION-----------------*/
  5. //definir el nombre o la ip del servidor de db
  6. $server='localhost';
  7. //definir el nombre de usuario de la db
  8. $user='usuario';
  9. //definir la contraseña
  10. $pass='contrasena';
  11. //definir el nombre de la db
  12. $db='nombre_base';
  13. //en la siguiente línea, definir el nombre de la tabla de la db (escribirlo entre las comillas simples).
  14. $tabla='nombre_tabla';
  15. //en esta otra línea colocar el nombre del archivo a mostrar al finalizar el proceso (escribirlo entre las comillas simples)
  16. $destino='exitoingreso.php';
  17. /*----------- FIN DE LA CONFIGURACION-----------------*/
  18. mysql_connect($server,$user,$pass);
  19. function insertar_form($tabla){
  20. foreach($_POST as $k => $v){
  21. if($k!='imageField_x' && $k!='imageField_y' && $k!='foto' && $k!='foto1' && $k!='foto2' && $k!='foto3' && $k!='Submit'){
  22. $listacampos[]=$k;
  23. $listavalores[]=(get_magic_quotes_gpc()) ? $v : addslashes($v);
  24. }}
  25. $formatocampos=implode(',',$listacampos);
  26. $formatovalores="'".implode("','",$listavalores);
  27. $formatovalores.="'";
  28. mysql_query("insert into $tabla ($formatocampos) values ($formatovalores)");
  29. }
  30. function subirarchivo($archivo,$archivotemp,$tabla,$campoarchivo,$error){
  31. $qry=mysql_query("select max(id) as ultimo from $tabla");
  32. $row=mysql_fetch_assoc($qry);
  33. $id=$row['ultimo'];
  34. if($archivo!=''){
  35. $hp=explode(".",$archivo);
  36. $extension200=strtolower(end($hp));
  37. if($extension200!='jpg' && $extension200!='gif' && $extension200!='png' && $extension200!='doc' && $extension200!='zip' && $extension200!='pdf' && $extension200!='xls' && $extension200!='ppt' && $extension200!='swf'){
  38. eval($error);exit;}
  39. $foto2=md5(time()).$archivo;
  40. if(!copy($archivotemp,$foto2)){die('No pudo cargarse la foto');};
  41. @chmod($foto2,0777);
  42. mysql_query("update $tabla set $campoarchivo='$foto2' where id='$id'");
  43. }
  44. }
  45. insertar_form($tabla);
  46. if(isset($_FILES['foto']['name'])){
  47. subirarchivo($_FILES['foto']['name'],$_FILES['foto']['tmp_name'],$tabla,'foto','');
  48. }
  49. for($i=1;$i<4;$i++){
  50. if(isset($_FILES['foto'.$i]['name'])){
  51. subirarchivo($_FILES['foto'.$i]['name'],$_FILES['foto'.$i]['tmp_name'],$tabla,'foto'.$i,'');}
  52. }
  53.  
  54. header("Location:$destino");
  55. ?>

Ahora bien, eso lo venía utilizando para subir una sola imagen. La realidad es que ahora necesito subir varias imágenes al mismo tiempo, por eso en el formulario voy a comenzar a utilizar:

Código HTML:
Ver original
  1. <td><input name="foto[]" type="file" multiple  id="foto" required=""></td>

Pero sinceramente no logro entender que debo modificar, si es que se puede, en el archivo insertar_datos.php

Desde ya agradecería cualquier ayuda que pudieran brindarme para lograr entender por donde comenzar. Desde ya muchísimas gracias!.

Saludos!

Última edición por Triby; 07/02/2017 a las 08:58 Razón: Código en highlight