| ||||
FTP o move_upload_file Queridos amigod, esta pregutna me surigio de otro tema que esta leyedo , a rraiz de una respuesta que dio cluster, ahora pregunto en que casos es mas recomendable usar cada una de las fucniones FTP o move_upload_file
__________________ SEO en Medellin |
| |||
Introducción .. Deciá en ese mensaje mencionado que: Cita: A lo cual respondistes: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. 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: 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.por que dices que es mas recomendable utilizar la fucnion move_upload_file cuando se trata de mover archivos del clinte al servidor... 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. |
| ||||
sin embargo.... hace ya 5 meses que utilize esta forma para subir archivos (mas explicitamente) imagenes del usuario a mi servidor... ha funcionado exelente y el codigo que sube la imgen son 4 lineas... por esto me agrado esta forma, pero ahora quiciera saber que posibles errores podrian surgir en el futuro es decir pasara algo PD: hay una linea del codigo que sube expresamente la imagen señalada al directorio donde uno quiere, es decri, no me tuve que complicar sacando la imagen de los temporales... cluster habra algún problema con esto??? que piensan???
__________________ SEO en Medellin |
| |||
mafima... Sólo aclarar que el proceso de "subir" la imagen lo haces igual que todo el mundo si lo haces por PHP: por HTTP .. Lo que cambia es que tu -mueves- el archivo por FTP y lo normal sería con move_uploaded_file() .. Con esa función sólo es una línea de código (el proceso de mover el archivo). Por lo demás .. que te funcione ese método o no te funcione en otros servidores depende de ese usuario que uses FTP y de la configuración de este. No sé donde apunta tu upload_tmp_dir (ver php.ini) ni donde "quedas" cuando entras por FTP con ese usuario en el servidor .. Pero si puedes hacer eso (si es que el directorio temporal queda fuera de tu "raiz" por donde quedas cuando entras por FTP) realmente la configuración de ese servidor es insegura (en teoría podrías copiar cualquier otra cosa .. de ese servidor). Un saludo, PD: se podría ver ese código completo?
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. Última edición por Cluster; 22/04/2004 a las 12:34 |
| ||||
claro el codigo es este: es algo largo, pero es para el cuento de identificar las extensiones de imagenes: codigo php. Código PHP:
__________________ SEO en Medellin Última edición por mafima; 22/04/2004 a las 12:44 |
| ||||
y el formulario HTML es asi:
Código:
<HTML> <BODY> <FORM ENCTYPE="multipart/form-data" ACTION="new.php" METHOD="post"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="600000"> <p><b>Seleccione la imagen<b><br> <INPUT type="file" name="archivo"></p> <br> <p><b>nombre de la imagen<b><br> <INPUT type="text" name="titulo"></p> <INPUT type="text" name="usuario"></p> <p><INPUT type="submit" name="enviar" value="Publicar"></p> </FORM> </BODY> </HTML>
__________________ SEO en Medellin |
| |||
Bueno . pues es lo que te comenté .. ese $archivo que usas como global en tu código .. es tu archivo que sube por HTTP y gestiona PHP .. Como veras tienes propiedades para ese archivo en $archivo_name .. $archivo_type .. etc. El acceso a los archivos deberías hacerlo según los arrays superglobales: $_FILES (si usas PHP 4.1.0 en adelante) es más seguro que asumirlo como globales (ten cuidado!!). Y lo demás .. ya te comenté . Una vez "arriba" tu archivo puedes moverlo por FTP o mejor por move_uploaded_file(). Por lo demás .. ¿"parece"? (no he revisado la documentación) que con: if(ftp_put($x,$name,$archivo,FTP_BINARY)){ está tomando el archivo tal cual que todavía está en ¿"memoria"? .. así que no lo mueve fisicamente. Por ende supongo que el archivo en sí seguirá rondando en los upload_tmp_dir del servidor perse que ya lo "subiste" por FTP a su destino definitivo. Por lo menos el "move_uploaded_file()" mueve el archivo (copia en destino y borra en origen). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Perfecto... entiendo a que te refieres cluster, y si es asi, creeme que si seria estrcitamente necesario mover el fcihero... esto me deja preocupado, ¡¡Seguire averiguando!!!
__________________ SEO en Medellin |