Foros del Web » Programando para Internet » PHP »

Solicito ayuda en proyecto PHP-FTP

Estas en el tema de Solicito ayuda en proyecto PHP-FTP en el foro de PHP en Foros del Web. Hola a todos, ya que no encuentro un programa en ftp y php que llene mis espectativas, estoy haciendo el mio, sin embargo necesito ayuda ...
  #1 (permalink)  
Antiguo 19/09/2006, 17:49
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Solicito ayuda en proyecto PHP-FTP

Hola a todos, ya que no encuentro un programa en ftp y php que llene mis espectativas, estoy haciendo el mio, sin embargo necesito ayuda para así terminarlo. Obvio, al terminarlo lo publico y digo que es lo que tiene.

Solo tengo una pregunta, algo extraido y modificado de http://www.desarrolloweb.com/articulos/1752.php , de inicio no me sirvió, pero al estar modificando ya abre.

Mi pregunta es la siguiente, a ver si entre todos lo acabamos.

Como extraer el contenido de un archivo y dejarlo en pantalla. En este caso se usa el ftp_get y luego se abre con un fopen? Agradesco de antemano el comentario, gracias.
  #2 (permalink)  
Antiguo 19/09/2006, 20:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Como extraer el contenido de un archivo y dejarlo en pantalla. En este caso se usa el ftp_get y luego se abre con un fopen? Agradesco de antemano el comentario, gracias.
Cuando hablas de "pantalla" mejor refierete a "entregarlo al navegador" o visuarlizarlo en la ventana del navegador .. (así nos aclararemos todos que estás usando PHP en entorno "web" y no por ejemplo bajo PHP-GTK .. por qué eso de "pantalla" me trajo recuerdos de aplicaciones de "escritorio").

El proceso de "visualización" de un archivo en tu navegador se hace principalmente enviando las cabeceras HTTP al cliente para que este interprete los datos como el tipo que són.

Por ende, te hace falta en tu proceso vários pasos:

1) Si te conectas por FTP (protocolo) .. en tu caso te "traes" a tu servidor el archivo, pero a una variable. NO guardarlo como archivo.

Esto sería lo ideal, .. no soy usuario habitual de las funcioens de ftp de PHP así que desconozco si hay función para hacer un "get" pero como un "string".

Si no existe .. si, con un ftp_get() te traes tu archivo a un directorio "temporal" en tu aplicación (servidor). Digo temporal por qué de alguna manera esos archivos en tu servidor no te interesan .. así que tendrás que implementar alguna funcionalidad para eliminar esos archivos cuando ya no lo necesites.

2) Obtienes el formato MIME del archivo (datos)
Lo podrías deducir en función de la extensión del archivo (no muy serguro). También lo puedes obtener con la función:

mime_content_type()
http://www.php.net/manual/es/ref.mime-magic.php

3) Compones las cabeceras HTTP adecuadas para indicar al cliente que los datos que envias son de tal formato (y otras propiedades sobre el archivo, incluido que lo quieres ver "en línea")

Con la función de PHP header() envias cabeceras HTTP. Que cabecera HTTP necesitas (o cuales) es parte del protocolo PHP.

En principio y como mínimo deberías usar:


Código PHP:
// Enviaremos un PDF. application/pdf es el formato MIME del archivo que tendrás que obtener antes.
header('Content-type: application/pdf');

// Indica el nombre del archivo igual al original ...
header('Content-Disposition: inline; filename="nombre.ext"'); 
4) Entregas el dato (tu archivo que ya lo tienes en una variable) al buffer de salida de PHP.

Si tienes el archivo físico, con readfile() haces todo el proceso: leerlo y entregarlo al buffer de salida de PHP. Tu navegador intentará interpretar el archivo en función de sus cabeceras enviadas. Depende del tipo de archivo y si ese navegador en cuestión dispone del plug-in adecuado, así vera el archivo o se le ofrecerá a descargar si no lo dispone.


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 20/09/2006, 08:37
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Voy a intentar un ftp_get, el hecho es que lo tiene que traer a un archivo temporal (temp.tmp) ya vi donde lo deja, y lo voy a abrir con fopen, espero resulte.
  #4 (permalink)  
Antiguo 20/09/2006, 08:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por lado2mx Ver Mensaje
Voy a intentar un ftp_get, el hecho es que lo tiene que traer a un archivo temporal (temp.tmp) ya vi donde lo deja, y lo voy a abrir con fopen, espero resulte.
El problema no lo vas a tener con ese proceder .. sino en que vas hacer con todos esos archivos que vas a "traerte" temporalmente a tu servidor. Ya has pensado en alguna rutina para eliminarlos?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 21:33.