Foros del Web » Programando para Internet » PHP »

<b>Cuestionario</b>: Sobre copia de archivos!!

Estas en el tema de <b>Cuestionario</b>: Sobre copia de archivos!! en el foro de PHP en Foros del Web. Tengo una duda sobre la nomenclatura en alunos protocolos. Tomamos como ejemplo el sitio ftp: ftp.rediris.es. He probado a acceder de dos formas distintas por ...
  #1 (permalink)  
Antiguo 02/12/2004, 09:53
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 13 años, 1 mes
Puntos: 0
Exclamación <b>Cuestionario</b>: Sobre copia de archivos!!

Tengo una duda sobre la nomenclatura en alunos protocolos.

Tomamos como ejemplo el sitio ftp: ftp.rediris.es. He probado a acceder de dos formas distintas por medio de conexioenes ftp:

- ftp_connect("ftp.rediris.es")
- ftp_connect("ftp://ftp.rediris.es")
Pues bien, la verdad es que soy nuevo en esto de expresar uris con protocolos pero he llegado a una conclusión sobre la que me gustaría q me diérais opinión.

- La primera forma hace un acceso ftp al directorio indicado, y me permite acceder al con las funciones ftp_xxx a su contenido.

- Sin embargo, la segunda lo abre como un fichero normal, en este caso directorio, que tendría que recorrer con las funciones is_file, is_dir...¡¡¡!!!
¿Cómo tendría que acceder entonces a un fichero colgado en un servidor ftp del tipo: ftp.rediris.es/debian/loQsea.txt (Así con ftp_connect no cuela y como he dicho con el ftp://delante lo interpreat como archivo)?

Como comente en temas anteriores, mi aplicación accede indistintamente a archivos locales o remotos (ftp), por lo que en este último caso se me cuela por la función que trata a lo locales (Si lo requieren adjunto código).

Sabeis algo al respecto? Espero q me haya explicado con suiciente claridad.

Otra pregunta: Si tengo un archivo c:/miRuta/ejemplo.txt y lo quiero volcar a otro c:/temp/miRuta/ejemplo.txt, podeís darme algún consejo si sólo tengo, como he explicado lel path completo del archivo ( lo he intentado con copy y no me crea el directorio")

Chao, gracias.

Última edición por redlor; 02/12/2004 a las 11:06
  #2 (permalink)  
Antiguo 02/12/2004, 10:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Sin embargo, la segunda lo abre como un fichero normal, en este caso directorio, que tendría que recorrer con las funciones is_file, is_dir...¡¡¡!!!
En modo remoto no puedes usar esas funciones. Solo para locales.

Cita:
¿Cómo tendría que acceder entonces a un fichero colgado en un servidor ftp del tipo: ftp.rediris.es/debian/loQsea.txt (Así con ftp_connect no cuela y como he dicho con el ftp://delante lo interpreat como archivo)?
Para eso debes usar funciones como fopen() para abrir el archivo .. Las comprobaciones del tipo "existe el archivo" .. las debes hacer a nivel de "HTTP" bien sea con esa misma función intentando abrirlo y si no lo consigues ya sabes que no existe o bien como si por HTTP usando conexiones por sockets e interpretando parte del protocolo HTTP usando funciones como fsockopen().

A todo esto .. debes verificar que tu configuración de PHP te permita: "allow url fopen", es decir . .que un "fopen()" que puedas hacer te permita hacerlo de forma remota: http://, ftp:// ...

Por si no lo has leido ya:
http://www.php.net/manual/en/ref.fil...llow-url-fopen
http://www.php.net/manual/en/features.remote-files.php

Cita:
Otra pregunta: Si tengo un archivo c:/miRuta/ejemplo.txt y lo quiero volcar a otro c:/temp/miRuta/ejemplo.txt, podeís darme algún consejo si sólo tengo, como he explicado lel path completo del archivo ( lo he intentado con copy y no me crea el directorio")
Copy() no crea directorios .. para eso tienes las funciones tipo mkdir() y afines .. primero tienes que crear el directorio y luego pretender copiarlo además de poner los permisos que corresponda si lo requieres (en windows depende que versión uses no suele ser necesario .. pero en linux si) esto último lo harías con funciones como chmod() y afines.

Un saludo,
  #3 (permalink)  
Antiguo 02/12/2004, 10:40
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 13 años, 1 mes
Puntos: 0
Muchas gracias, de nuevo, la verdad es que no había visto el aprtado de archivos remotos. Eso me aclara mis sospechas, ftp:// no es un acceso ftp. Investigaré sobre el tema.

De todas formas sigo preocupado cn el temas de los directorios. Sabes si hay funciones que te permitan dada una ruta absoluta de fichero sacar el nombre de todos sus dirctorios?? Cómo te digo, mi apliación es genérica y me puede vanir cualquier uri por lo que lo único que obtengo al explorarla, a q se haga necesario hacerlo de otra, es la ruta completa de los archivos, con la que tendré que replicarlos en un direcorio concreto.

Gracias, salu2
  #4 (permalink)  
Antiguo 02/12/2004, 10:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Sabes si hay funciones que te permitan dada una ruta absoluta de fichero sacar el nombre de todos sus dirctorios??
Te refieres a una ruta dada tipo:
ftp://ftp.tal.tal/nose

o http://www.tal.tal/nose

(o incluso desde el "raiz" de ese ftp:// o http://)

Si es así .. no es posible salvo usar las técnicas de los "spiders" de los robots de buscadores como google .. En ese caso lo que hacen es tomar un "index" (.html, .php.. etc) y de ahí siguen los "links" que apunte el código de esa página . .por ahí se puede "reconstruir" un arbor de un sitio .. siempre y cuando a todo haga referencia en ese código (links) lo que no esté "linkeado" .. no podrás accederlo.

Un saludo,
  #5 (permalink)  
Antiguo 02/12/2004, 11:04
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 13 años, 1 mes
Puntos: 0
Ok, más bien me refería a cuando estén en local, porque en remoto con poner la absoluta me vale (hago un ftp_get de la ruta del archivo).

Si tengo:

"c:/dirA/dirB/dirC/.../dirN/ejemplo.txt"


y tengo que copiarlo a una carpeta temp:

"c:/temp/dirA/dirB/dirC/.../dirN/ejemplo.txt"


si no se por los directorios que pasa no lo puedo hacer, si te he entendido bien. Así q me preguntaba si hay alguna forma de hacer esa copia (No me valdría copiar el directorio al completo ya que sólo necesito los archivos del directorio seleccionados por el usuario).


Gracias, otra vez
  #6 (permalink)  
Antiguo 02/12/2004, 11:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero vamos a ver ..

esos "puntos suspensivos" indican que NO sabes la ruta absoluta completa? ..

Resumiendo .. si tu tienes en local:
c:\nose\blabla\archivo.txt

y quieres copiarlo sobre
c:\tmp\nose\blabla\archivo.txt

si no tienes creado esa ruta de destiono .. tendrás que crearla a base de mkdir() y rmdir() evaluando tu cadena de ruta origen (string) . donde puedes identificar los "directorios" que has de crear y sabes que son "hacia abajo" .. es decir . .creas uno .. te metes dentro y creas el otro .. así de forma "recursiva" .. cuando tengas creado el último .. haces el copy() de tu archivo ahí.

Hablamos de rutas absolutas siempre y de archivo locales (en el mismo servidor (o incluso red) que corre PHP).

Un saludo,
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:45.