Foros del Web » Programando para Internet » PHP »

Duda: Subir ficheros via ftp con php

Estas en el tema de Duda: Subir ficheros via ftp con php en el foro de PHP en Foros del Web. Hola, Es posible que esta pregunta esté ya realizada en alguna parte del foro o respondida, pero no doy con ella. En la actualidad, tengo ...
  #1 (permalink)  
Antiguo 27/12/2003, 22:11
Avatar de udeboss  
Fecha de Ingreso: marzo-2002
Mensajes: 45
Antigüedad: 22 años, 1 mes
Puntos: 0
Duda: Subir ficheros via ftp con php

Hola,
Es posible que esta pregunta esté ya realizada en alguna parte del foro o respondida, pero no doy con ella.

En la actualidad, tengo una web que sube via http al servidor una foto de mi HD (seleccionada en un formulario) y luego la guardo con otro nombre y le cambio el tamaño para hacer un thumbnail.

El caso es que, para archivos grandes, he tenido que solicitar al servidor que cambiara un par de parámetros (max_time_limit y upload_max_filesize) ya que si no las fotografías ocupaban demasiada memoria y tiempo del script.

Para arreglar esto de otra manera, los del servidor me insisten en que me mire la integración de ftp en php y su uso para este fin, sin embargo tengo una serie de dudas:
1- El cliente (cualquier pc que se conecte a mi web) ¿debe tener un servidor ftp instalado?
2- La conexión sería para subir un fichero desde local al servidor, para eso la conexión creo que se debería hacer desde mi PC contra el servidor ¿eso lo hace un php del servidor?
3- Si uso ftp_open y demás funciones en un script php, lo que conectaría sería mi servidor contra otra máquina con un servidor ftp, no? ¿se puede conectar con mi pc sin servidor ftp en mi pc?

En definitiva, no sé si puedo sustituir el upload via http por uno via ftp si en mi pc local no hay un servidor ftp.

¿alguna ayuda o consejo?

Muchas gracias por adelantado y felices fiestas a todos.

Última edición por udeboss; 28/12/2003 a las 16:16
  #2 (permalink)  
Antiguo 28/12/2003, 20:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La directiva de configuraración de php (php.ini):

max_time_limit

Puedes ajustarla en tiempo de ejecución de tus scirpts usando:
set_time_limit() .. indicando los segundos que estiemes oportunos que tu script va a tardar en ejecutar lo que pretendas. Si indicas "0" será tiempo infinito (tarde lo que tarde en ejecutarse tu script ..)

La directiva: upload_max_filesize no es posible ajustarla en tiempo de ejecución ni vía .httacces. Así que la única alternativa es que lo hagan los Srs. de tu servicio de Hosting.


Sobre tus preguntas:
Cita:
1- El cliente (cualquier pc que se conecte a mi web) ¿debe tener un servidor ftp instalado?
En principio no, .. en tal caso el "Upload" en sí se realizaría por HTTP tal y como lo estás haciendo, todo gestionado por PHP con sus pro y contras (limitaciones).

Cita:
2- La conexión sería para subir un fichero desde local al servidor, para eso la conexión creo que se debería hacer desde mi PC contra el servidor ¿eso lo hace un php del servidor?
Cita:
3- Si uso ftp_open y demás funciones en un script php, lo que conectaría sería mi servidor contra otra máquina con un servidor ftp, no? ¿se puede conectar con mi pc sin servidor ftp en mi pc?
La conexión se hace por parte de PHP hacia un servidor FTP. Si has subido ya tu archivo por HTTP como te mencioné en el punto 1 .. o ese archivo ha subido por FTP directo (el caso es que el archivo está en tu servidor ya) el destino que le des puede ser "llevado" tu archivo por FTP conectando al mismo servidor que corre PHP (mejor dicho .. será una conexión "local" si PHP y ese servidor HTTP corren en el mismo servidor) o como ya lo haces con funciones como copy() o move_uploaded_file() para llevar el archivo que en principio cae en el directorio temporal que define tmp_upload_dir (o similar no recuerdo bien la directiva) hacia su destino definitivo.

En resumen .. Para no pasar por PHP para el "upload" tus clientes (PC de quien interactue con tu web para ese upload) deberían de disponer de un -cliente FTP- minimo y cuentas creadas en ese servidor o bien una cuenta anónima de FTP para todo usuario.

Que yo sepa esa es la única manera. Si usas upload vía PHP por HTTP como ya lo haces con ese formulario y recibiendola desde PHP, vas a tener las limitaciones de este.


Soluciones:
1) sigues como estás por HTTP y teniendo en cuenta las limitaciones.
2) subes los archivos por FTP creando una cuenta de FTP anónimo o exclusiva y usando un cliente FTP cualquiera. Con PHP puedes abrir ese directorio donde subas tus archivos por FTP y realizar todas las acciones que estimes oportunos .. pero este proceso deberías lanzarlo a intervalos de tiempo bajo un Cron Job o similar "Programador de tareas" .. con lo cual pierdes control sobre la aplicación .. pero no total.

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 05:15.