Cargar y Enviar txt a un archivo php

Hola que tal Kiwisoft, te saludo y te explico lo que deseo realizar a ver si me pudieras orientar un poco.
Quiero cargar y enviar un txt a un archivo php para que este lo leea y los campos necesarios me los inserte a una base de datos.
Tengo lo siguiente, en donde el archivo .txt se encuentra en el mismo directorio que los demás archivos.
procesa.php
<?php
$dbhost = "localhost";
$dbname = "empleados";
$dbpass = "";
$dbuser = "root";
$conexion = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname,$conexion);
$contenido=file('EJEMPLO_ESTR.txt');  //leee las filas del archivo
echo "Total de Filas en el Archivo:";echo "<br>";
echo $contado=count($contenido)."<br>"; //cuenta el total de las filas
echo "<br>";
for($i=0; $i<$contado; $i++){
echo "Numcta"; echo "<br>";
echo substr($contenido[$i], 0, 16)."<br>";   //campo correspondiente al numcta
echo "Nombre"; echo "<br>";
echo substr($contenido[$i],16,25)."<br>";   // compo correspondiente al nombre
echo "Direccion"; echo "<br>";
echo substr($contenido[$i],46,20)."<br>";   // compo correspondiente a la direccion
echo "Importe"; echo "<br>";
echo substr($contenido[$i],72,11)."<br>";   // compo correspondiente al importe
echo "Consumo"; echo "<br>";
echo substr($contenido[$i],85,12)."<br>";   // compo correspondiente al consumo
echo "Rpe"; echo "<br>";
echo substr($contenido[$i],100,5)."<br>";   // compo correspondiente al rpe 
 $inserta = "insert into empleados (`rpe` ,....... Etc........ . .  . . . . . . . . .. .) values(et.....
 mysql_query($inserta);
 echo "Datos Insertados con Exito";
}
?>
Lo que quiero es que en vez de que sea un archivo de un mismo directorio en este caso $contenido=file('EJEMPLO_ESTR.txt');  //archivo en el mismo directorio
Quiero que el usuario cargue el archivo y se lo envíe a procesa.php para hacer lo mismo, contar las filas, extraer los campos e insertar. Es decir que el usuario seleccione la ubicación del archivo y recibirlo en procesa.php
Espero habermo explicado de una manera clara, y te agradezco de antemano tu ayuda
Gracias.
Jairnovi.
Saludos

1 Respuesta

Respuesta
1
La solución pasa por hacer lo siguiente:
Imagina que index.php es el script que permite al usuario elegir el archivo, y una vez elegido lo "pasa" a procesa.php. El código de index.php debería ser algo parecido a...
<form methos='post' action='procesa.php' enctype='multipart/form-data'>
<input type='file' name='mi_archivo'>
<input type='submit' value='Procesar'>
</form>
Bien, el input de tipo "file" permite al usuario lo que pretendes, elegir un archivo y adjuntarlo en el envío html. Cuando el usuario confirma el procesamiento del archivo éste es gestionado por el servidor, almacenándolo temporalmente hasta que se procese. Así, al invocar el script procesa.php tendremos acceso al archivo medianteel array de sistema $_FILES, con lo que haciendo un file($_FILES[mi_archivo][tmp_name]) obtendríamos el mismo resultado que hasta ahora, pero procesando el archivo subido.
Para mayor información te recomiendo el siguiente enlace...
http://www.webtaller.com/construccion/lenguajes/php/lessons/subir_archivos.php
... aunque si tienes más dudas, no dudes en consultarme.
Gracias por la respuesta, con la página que me anexaste me quedo un poco más claro cual es el proceso de copiar un archivo a otra carpeta, intente con esto:
<?
if($boton) {
    if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
      copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
      $subio = true;
    }
if($subio) {
    echo "El archivo subio con exito";
} else {
    echo "El archivo no cumple con las reglas establecidas";
}
die();
}
?>
<form action="<?=$'PHP_SELF'?>" method="post" enctype="multipart/form-data" name="form1">
<p align="center">Archivo
   <input name="archivo" type="file" id="archivo">
  </p>
<p align="center"><input name="boton" type="submit" id="boton" value="Enviar"></p>
</form>
Pero en realidad no me funciono me marca algo en $PHP_SELF, la verdad no se que es el php_self y no se si este ejemplo se guarde en un mismo archivo o aparte...
Te agradezco tu ayuda...
Gracias...
Veo que estas un poco desorientado en PHP. Antes de nada, como consejo (no porque no me preguntes, que no hay problema, sino por tu propio aprendizaje) es recomendable que uses www.php.net con frecuencia, que para algo está, je je je.
$PHP_SELF es el nombre del script "en proceso", y es una variable de sistema que dependiendo de la version de php y ciertas configuraciones, esta activa o no.
De tofas formas, "me marca algo" no es un código de error que yo conozca de PHP. Si me adjuntas el waring o pharse error, te lo agradecería.
Aparte, te recomiendo que hagas el post a otro archivo. Te será más fácil y te evitará problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas