Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/04/2004, 06:22
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Introducción ..

Deciá en ese mensaje mencionado que:

Cita:
Las funciones de FTP te permiten conectarte a un servidor FTP y mover/copiar .. etc .. archivos en ese servidor. OK?

Ahora .. si yo tengo mi archivito a subir al servidor en mi PC (cliente) y deseo subir un archivo al servidor por HTTP (por una página web para que mis usuarios suban fotos/archivos en general sin que tengan que usar un cliente FTP o por qué simplemente a ese archivo le asocio otros datos y debo guardar en mi BD o donde sea ...).

¿ Como aplicas funciones de FTP para subir mi archivo de mi PC (clienet) al servidor ?

Es decir (a lo que quiero llegar) ..
El "Upload" se hará vía PHP por HTTP con las limitaciones de la configuración de PHP (php.ini) al respecto. Una vez que sube el archivo (que queda en ese directorio temporal que se mencionó: donde diga upload_tmp_dir por si ascaso ..) se debe -mover- hacia su destino definitivo. Si es en el mismo servidor, un "move_uploaded_file()" es lo más seguro y rápido. Una conexión por FTP al mismo servidor que ejecuta PHP y que es donde quedarán los archivos tendrá un tiempo más extra de conexión y negociación de la autentificación del usuario FTP que se va a usar además que requiere de un servidor FTP habilitado (cuando podría ser opcional). Ahora, si el archivo se va a mover a otro servidor distinto al que lo subió (el archivo) .. OK, usa FTP sin problemas para moverlo de forma segura a donde corresponda.
A lo cual respondistes:

Cita:
cluster, exelente eseaporte de las funciones fopen, copy etc

pero hay algo que no te entendi... acerca de las funciones FTP...
entiendo que dices que es mas lenta en cuanto a que tiene que negociar la autentificación, pero no entiendo por que dices que es mas recomendable utilizar la fucnion move_upload_file cuando se trata de mover archivos del clinte al servidor...
bueno, pero no pretendo robarle el header a nuestro compañero, sin embargo quedo con la duda, ahora mismo voy abrir un nuevo tema que trate sobre esto, CLUSTER espero tu participación esn este tema.
HASTA PRONTO
--------

Bien, ... Lo que mencionas de:

Cita:
por que dices que es mas recomendable utilizar la fucnion move_upload_file cuando se trata de mover archivos del clinte al servidor...
Ese movimiento de archivos se produce en el servidor . .no entre cliente-servidor .. para ese instante tu archivo ya lo has subido al servidor sea por HTTP (con PHP) o por tu cliente habitual de FTP o administrador de archivos de tu hosting.

El hecho de que sea recomendable usar move_upload_file() en lugar de funciones FTP .. además de lo que ya mencioné (y se me olvidó pero ahora comento) es que .. PHP sube los archivos a un directorio temporal que lo definine la directiva: upload_tmp_dir .. Ese directorio definido suele ser "compartido" para todos los sitios que pueda albergar ese servidor .. Las cuentas del servidor FTP para su acceso suelen tener como directorio de inicio el que se ha asignado en tu servidor virtual .. es decir (ejemplo) en una estructura del sistema de archivos de un servidor tipo:

/
/tmp
/var
-->/www/
------>/sitios/
--------->/tusitio/
--------->/otrositio/
--------->/etcsitios/

Donde "caes" al entrar por FTP a tusitio es justamente a ese directorio .. Pero el "upload_tmp_dir" puede estar definido (y de hecho suele ser así) en el /tmp .. Directorio que queda fuera del alcance de permisos de movimiento de tu cuenta definida en ese servidor FTP de ese servidor en concreto. Por ende .. no vas a poder usar esas funciones (en la mayoría de casos) para hacer ese movimiendo desde /tmp --> hacia /var/www/sitios/tusitio/algun_dir_de_tu_sitio

Las funciones de FTP debes usarlas cuando tengas que mover archivos entre servidores FTP .. pese que .. tu sistio asignado en ese servidor sea lo mismo que puedes moverte por tu cliente FTP dentro de la estructura de directorios de ese servidor. Para eso, tienes las funciones básicas tipo copy() .. fopen() y demás como hacía mención. Y si piensas mover archivos entre servidor X y el Y .. si ambos disponen de servidores FTP instalados y una cuenta de acceso con su directorio "raiz" configurado donde pretendas mover el archivo .. podrás hacer la conexión FTP<->FTP para mover archivos de forma automática.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.