Inicio > PHP > kiwisoft > Cargar y Enviar txt a un archivo php

Cargar y Enviar txt a un archivo php

Experto:
Usuario:
Fecha: 11/09/2009
Valoración: (5,00 sobre 5) Categoría: PHP
07/09/2009
jairnovi, usuario preguntando en PHP
Usuario
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 demas 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 envie a procesa.php para hacer lo mismo, contar las filas, extraer los campos e insertar.  Es decir que el usuario seleccione la ubicacion del archivo y recibirlo en procesa.php
 
 
Espero habermo explicado de una manera clara , y te agradezco de antemano tu ayuda
 
Gracias.
 
Jairnovi.
 
Saludos
 
 
 
 
 
 
 
 
 
07/09/2009
jairnovi, experto respondiendo en PHP
Experto
Hola:
La solucion 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 codigo de index.php deberia 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 envio html. Cuando el usuario confirma el procesamiento del archivo éste es gestionado por el servidor, almacenandolo 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]) obtendriamos 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.
Espero haberte ayudado.
Saludos.
08/09/2009
jairnovi, usuario preguntando en PHP
Usuario
Gracias por la respuesta, con la pagina que me anexaste me quedo un poco mas 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...
09/09/2009
jairnovi, experto respondiendo en PHP
Experto
Hola:
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 codigo 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 facil y te evitará problemas.
Espero noticias.
Saludos.
11/09/2009
jairnovi, usuario preguntando en PHP
Usuario
Muchas gracias por tu ayuda
Enlaces patrocinados