Foros del Web » Programando para Internet » PHP »

UPLOAD de archivos via FTP desde mi página PHP

Estas en el tema de UPLOAD de archivos via FTP desde mi página PHP en el foro de PHP en Foros del Web. actualmente tengo programas para levantar datos pero de manera simple, es decir, para optimizar el tiempo de subida como puedo hacerlo para utilizar FTP?...
  #1 (permalink)  
Antiguo 07/01/2004, 09:08
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 14 años, 4 meses
Puntos: 1
UPLOAD de archivos via FTP desde mi página PHP

actualmente tengo programas para levantar datos pero de manera simple, es decir, para optimizar el tiempo de subida como puedo hacerlo para utilizar FTP?
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #2 (permalink)  
Antiguo 07/01/2004, 09:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. esos datos de donde los "levantas" ..

1) ¿a traves de una página web .. donde el usuario indica uno de sus archivos de su PC para subirlo (o varios) a tu servidor? ..

2) ¿ Tu cliente (usuario) tiene instalado un servidor FTP y mueves un archivo desde ese servidor FTP al tuyo (u otro distinto). ?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 07/01/2004, 10:01
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 14 años, 4 meses
Puntos: 1
De hecho es la opción 1) que mencionas; te detallo algo más al respecto:
a. De los sistemas informáticos de mi empresa genero diariamente archivos de texto que tienen tamaño de 40Kb a 40Mb. Esto en mi disco local C:\datosweb
b. Utilizo un programa de utilidad FTP llamado ACEFTP, y levanto de mi carpeta C:\datosweb a http:\\www.miweb.com\datospc; aquí me surge una duda eso es FTP?; en todo caso debería subirlos a ftp:\\miweb.com o algo así...
c. Luego de terminar de subir los archivos de texto. Mediante el PhpMyAdmin que me facilita mi hosting actualizo las tablas de mi base de datos con la sentencia SQL load data local infile....
todo este proceso me toma alrededor de 2 horas
------
Ahora, en algunas páginas de mi site, doy acceso a los usuarios de mi empresa a que levanten archivos pequeños, de sus discos locales al hosting. Lo que deseo es que el proceso detallado anteriormente lo hagan los propios usuarios. La idea que tengo es la siguiente:
- Seguir haciendo la generación del punto a. normalmente.
- Desde una página que los usuarios levanten estos archivos de texto de sus discos locales. Este punto se podría obviar?, pues sé los nombres de los archivos de texto y su ubicación de los discos locales de los usuarios. Actualmente uso move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo), pero mi problema y duda es el tamaño de los archivos, demoraría mucho en levantarse la data.
------
Cuál sería la mejor forma de hacer que mis usuarios levanten ellos mismos estos archivos a la base de datos?. Hay otra mejor solución que la que estoy pensando en desarrollar?
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #4 (permalink)  
Antiguo 07/01/2004, 10:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si tus "clientes" (los usuarios) disponen de un servidor FTP cada uno en su PC habilitado podrías usar PHP para conectarte a ese servidor FTP concreto de cada usuario y hacer ese proceso automático sin intervención del usuario, pero .. para eso hace falta que tu usuario disponga de un servidor FTP en su PC.

Desde PHP harías la conexión FTP<->FTP (FTP local de ese usuario a FTP de tu servicio de hosting).

El tema del proceso que haces "manualmente" usando phpMyadmin podrías hacerlo automático lanzando esa consulta que ya haces en phpMyadmin desde un script php usando mysql_query("tu SQL que usas").

Ese proceso (ejecución de ese script que haga tu mysql_query() con el SQL del "load in ...") podría ser ejecutado en primera instancia en el momento que el archivo ha llegado al servidor (al final del proceso actual que usas de Upload) .. O bien podrías ejecutarlo en tu servidor bajo una llamada de un "Cron Job" que ejecutaría ese script a intervalos de tiempo que tu especifiques (tu script debería abrir esos archivos de algún directorio donde los subes y procesarlos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 07/01/2004, 11:44
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 14 años, 4 meses
Puntos: 1
gracias, quiero hacerlo de la forma que sugieres FTP <-> FTP; pero necesito de tu ayuda (y disculpa mi ignorancia en el tema):

1) a que te refieres con que los usuarios (les llamo así porque son personas de mi empresa que se encargaran de actualizar su data para que los clientes - internautas - las visualicen) dispongan de un servidor FTP en su PC. En todo caso que servidor FTP me sugieres.
Les puedo crear acceso a mi espacio FTP para que puedan grabar datos ellos (ftp://misitio.com/datos)

2) cómo hago la conexión FTP local <-> FTP mi hosting; usando PHP.

3) lo de la consulta mysql_query("tu SQL que usas"), sí lo entiendo perfectamente.

4) cómo hago una llamada de un "Cron Job" y como defino los intervalos de tiempo para que se autoejecute?

Como apreciarás estimado Cluster, tengo 1000 y 1 dudas al respecto, agradecería enormente que me puedas ayudar; estoy seguro que esto le servirá de ayuda a muchos participantes de este foro.
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
  #6 (permalink)  
Antiguo 07/01/2004, 13:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) .. Debes instalar un servidor FTP en cada PC de tus personas de tu empresa que actualicen esos datos. Cual instalar? .. depende del S.O. que tengan esos PC's .. Si usan windows podría ser el ServerU (hay miles .. visita sitios como www.softonic.com)

Si quieres puedes crearles cuentas en tu servidor de tu hosting para el FTP .. pero podrían usar una sóla cuenta si lo deseas.

2) La conexión FTP <-> FTP vía PHP lo harías con las funciones de FTP de PHP:
www.php.net/ftp

El proceso sería:
Conectas al servidor del cliente (PC de esa persona de tu empresa) -> recoges el archivo(s) implicados -> lo almacenas temporalmente en tu servidor y lo mueves hacia el otro FTP haciendo una nueva conexión ..

Pero, .. si el Servidor que aloja tus páginas .php es el mismo de destino de esos archivos .. no hace falta hacer nua conexión FTP<->FTP . .tan sólo conectar al FTP de l cliente y listo . .ya lo tendrás en el servidor para que lo muevas a su destino definitivo con copy() por ejemplo .. o lo abras ahí mismo para procesarlo.

4) El "Cron Job" es una aplicación de entorno Linux .. (supongo que tu servicio de hosting usa Linux) . si usase windows sería el "programador de tareas". Ese servicio de "Cron Job" te lo tiene que permitir usar tu servicio de hosting (bien sea manualmente si se lo pides a ellos o bien automáticamente si dispones de esa funcionalidad en tu panel de control (ejemplo cPanel la incorpora).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 07/01/2004, 15:38
Avatar de acervantes  
Fecha de Ingreso: agosto-2003
Ubicación: Madrid
Mensajes: 311
Antigüedad: 14 años, 4 meses
Puntos: 1
excelente, ahora lo que me queda es investigar, muchas gracias, luego les explico como solucioné mi problema.
__________________
ACervantes

[El éxito dura hasta que alguien las caga; los errores son eternos]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:48.