Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2014, 12:42
JorgeQuirino
 
Fecha de Ingreso: enero-2014
Mensajes: 111
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Unir formularios de carga de archivos

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>:: Importar de Excel a la Base de Datos ::</title>
  5. </head>
  6. <body>
  7. <!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -->
  8.  
  9. <form name="importa" method="post" action="<?php echo$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" style="position:absolute;left:50;top:300">
  10. <p>Selecciona el archivo Listcon:</p>
  11. <input type="file" name="excel" />
  12. <input type='submit' name='enviar'  value="Importar"  style="position:absolute;top:290;left:305"/>
  13. <input type="hidden" value="upload3" name="action" />
  14. </form>
  15. <!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->
  16.  
  17. <?php
  18. //mostrara solamente errores de ejecucion dentro de la pag.
  19.  
  20. $action='';
  21. extract($_POST);
  22. if ($action == 'upload3') //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
  23. {
  24. //cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
  25. $archivo = $_FILES['excel']['name']; //captura el nombre del archivo
  26. $tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)
  27.  
  28. $destino = "bak_".$archivo; //lugar donde se copiara el archivo
  29.  
  30. if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
  31. {
  32. echo "<p style='position:absolute;top:355;left:120'>Archivo Cargado Con Exito</p>";
  33. }
  34. else
  35. {
  36. echo "Error Al Cargar el Archivo";
  37. }
  38.  
  39. //validacion para saber si el archivo ya existe previamente
  40. if (file_exists ("bak_".$archivo))
  41. {
  42. /*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
  43. /** Invocacion de Clases necesarias */
  44.  
  45. require_once 'Classes/PHPExcel.php';
  46. require_once 'Classes/PHPExcel/Reader/Excel2007.php';
  47. //DATOS DE CONEXION A LA BASE DE DATOS
  48. $cn = mysql_connect ("localhost","root","") or die ("ERROR EN LA CONEXION");
  49. $db = mysql_select_db ("perfilados",$cn) or die ("ERROR AL CONECTAR A LA BD");
  50.  
  51. // Cargando la hoja de calculo
  52. $objReader = new PHPExcel_Reader_Excel2007(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
  53. $objPHPExcel = $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
  54. $objFecha = new PHPExcel_Shared_Date();
  55.  
  56. // Asignar hoja de excel activa
  57. $objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)
  58.  
  59.  
  60. function insert($valores){
  61.     mysql_query("insert into listcon values ".$valores);
  62. }
  63.  
  64. // Llenamos un arreglo con los datos del archivo xlsx
  65. $i=1; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
  66. $param=0;
  67. $contador=0;
  68. $f=14000; //para insertmultiple
  69. while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
  70. {
  71. $USUARIOS=$objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue();
  72. $GRUPO=$objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
  73.  
  74. $valores.="('$USUARIOS','$GRUPO'),";
  75. if($i==$f){
  76. $valores=substr($valores,0,-1);
  77. $c="insert into listcon values ".$valores;
  78. $f+=15500;
  79. }
  80. if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL)
  81. //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
  82. {
  83. $param=1; //para detener el ciclo cuando haya encontrado un valor NULL
  84. }
  85. $i++;
  86. $contador=$contador+1;
  87. }  
  88. if($i<$f && $i>($f-3000)){
  89. $valores=substr($valores,0,-1);
  90. insert($valores); //INSERTAMOS
  91. }else{
  92.     if($i<3000){ // SI NO SUPERA LOS 1000 REGISTROS CARGA LOS QUE ALLA
  93.     $valores=substr($valores,0,-1);
  94.     insert($valores); //INSERTAMOS
  95.     }
  96. }
  97.  
  98. $totalIngresados=$contador-1; //(porque se se para con un NULL y le esta registrando como que tambien un dato)
  99. echo "<p style='position:absolute;top:375;left:100'>Total elementos subidos: $totalIngresados, <img src='img/correcto.jpg' border='0' width=5% height='4%'></p>";
  100. }
  101. else//si no se ha cargado el bak
  102. {
  103. echo "Necesitas primero importar el archivo";}
  104. unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
  105. }
  106. ?>
  107.  
  108. </body>
  109. </html>
  110.  
  111.  
  112.  
  113. <!-- archivo Listusr-->
  114.  
  115. <html>
  116. <head>
  117. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  118. <title>:: Importar de Excel a la Base de Datos ::</title>
  119.  
  120. </head>
  121. <body>
  122.  
  123. <!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -->
  124.  
  125. <form name="importa" method="post" action="<?php echo$_SERVER['PHP_SELF'];?>" enctype="multipart/form-data" style="position:absolute;left:50;top:430">
  126. <p>Selecciona el archivo Listusr:</p>
  127. <input type="file" name="excel" />
  128. <input type='submit' name='enviar'  value="Importar"  style="position:absolute;top:160;left:230"/>
  129. <input type="hidden" value="upload4" name="action" />
  130. </form>
  131. <!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->
  132.  
  133. <?php
  134. //mostrara solamente errores de ejecucion dentro de la pag.
  135.  
  136. $action='';
  137. extract($_POST);
  138. if ($action == 'upload4') //si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
  139. {
  140. //cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
  141. $archivo = $_FILES['excel']['name']; //captura el nombre del archivo
  142. $tipo = $_FILES['excel']['type']; //captura el tipo de archivo (2003 o 2007)
  143.  
  144. $destino = "bak_".$archivo; //lugar donde se copiara el archivo
  145.  
  146. if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
  147. {
  148. echo "<p style='position:absolute;top:485;left:125'>Archivo Cargado Con Exito</p>";
  149. }
  150. else
  151. {
  152. echo "Error Al Cargar el Archivo";
  153. }
  154.  
  155. //validacion para saber si el archivo ya existe previamente
  156. if (file_exists ("bak_".$archivo))
  157. {
  158. /*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
  159. /** Invocacion de Clases necesarias */
  160.  
  161. require_once 'Classes/PHPExcel.php';
  162. require_once 'Classes/PHPExcel/Reader/Excel2007.php';
  163. //DATOS DE CONEXION A LA BASE DE DATOS
  164. $cn = mysql_connect ("localhost","root","") or die ("ERROR EN LA CONEXION");
  165. $db = mysql_select_db ("perfilados",$cn) or die ("ERROR AL CONECTAR A LA BD");
  166.  
  167. // Cargando la hoja de calculo
  168. $objReader = new PHPExcel_Reader_Excel2007(); //instancia un objeto como PHPExcelReader(objeto de captura de datos de excel)
  169. $objPHPExcel = $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
  170. $objFecha = new PHPExcel_Shared_Date();
  171.  
  172. // Asignar hoja de excel activa
  173. $objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)
  174.  
  175. function insert($valores){
  176.     mysql_query("insert into listusr values ".$valores);
  177. }
  178.  
  179. // Llenamos un arreglo con los datos del archivo xlsx
  180. $i=1; //celda inicial en la cual empezara a realizar el barrido de la grilla de excel
  181. $param=0;
  182. $contador=0;
  183. $f=7000; //para insertmultiple
  184. while($param==0) //mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
  185. {
  186. $USUARIOS=$objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue();
  187. $NOMBREUSUARIO=$objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
  188.  
  189. $valores.="('$USUARIOS','$NOMBREUSUARIO'),";
  190. if($i==$f){
  191. $valores=substr($valores,0,-1);
  192. $c="insert into listusr values ".$valores;
  193. $f+=7000;
  194. }
  195.  
  196. if($objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL)
  197. //pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
  198. {
  199. $param=1; //para detener el ciclo cuando haya encontrado un valor NULL
  200. }
  201. $i++;
  202. $contador=$contador+1;
  203. }
  204.  
  205. if($i<$f && $i>($f-3000)){
  206. $valores=substr($valores,0,-1);
  207. insert($valores); //INSERTAMOS
  208. }else{
  209.     if($i<3000){ // SI NO SUPERA LOS 1000 REGISTROS CARGA LOS QUE ALLA
  210.     $valores=substr($valores,0,-1);
  211.     insert($valores); //INSERTAMOS
  212.     }
  213. }
  214.  
  215. $totalIngresados=$contador-1; //(porque se se para con un NULL y le esta registrando como que tambien un dato)
  216. echo "<p style='position:absolute;top:510;left:100'>Total elementos subidos: $totalIngresados ,<img src='img/correcto.jpg' border='0' width=5% height='4%'> </p>";
  217. echo "<p style='position:absolute;top:580;left:175'>Archivos cargados correctamente volver a pag Principal</p>";
  218. }
  219. else//si no se ha cargado el bak
  220. {
  221. echo "Necesitas primero importar el archivo";}
  222. unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
  223. }
  224.  
  225. ?>
  226.    
  227.  
  228.     <a href="cargaArchivos.html" style="position:absolute;left:40;top:580" class="btn btn-primary btn-lg active" role="button"><span class="glyphicon glyphicon-chevron-left"></span> Volver</a>
  229. </body>
  230. </html>
y esos los otros 2, la pregunta como los puedo unir en un solo formulario, con un solo boton de importar, les agradeseria su ayuda y muchas GRACIAS!!!