Foros del Web » Programando para Internet » PHP »

Conexión ftp con php (depurar)

Estas en el tema de Conexión ftp con php (depurar) en el foro de PHP en Foros del Web. Hola, estoy creando una conxión ftp con php. Actualmente tengo una aplicacion en php funcionando en local y quiero hacer una conexión ftp para subir ...
  #1 (permalink)  
Antiguo 13/10/2006, 11:30
 
Fecha de Ingreso: enero-2006
Ubicación: Valencia
Mensajes: 96
Antigüedad: 14 años
Puntos: 1
Conexión ftp con php (depurar)

Hola,

estoy creando una conxión ftp con php. Actualmente tengo una aplicacion en php funcionando en local y quiero hacer una conexión ftp para subir las fotografias relativas a una ficha con solo un click en dicha ficha en local.
El script subiria los datos de mysql por un lado y las fotografías por otro.
He estado viendo la forma de subir en binario las fotos en la base de datos pero en este caso no me es útil.

He creado el siguiente código que mas o menos funciona, pero me gustaría depurarlo.
1.- El modo de chekear si el directorio donde voy a subir las fotos existe en el servidor es moviendome hacia él con ftp_chdir, si me da error pues creo el directorio, sino pues me llevará a dicho directorio y ya puedo ejecutar la subida de archivos.

2.- En total son un maximo de 6 archivos y los subo uno tras otro, pero tengo problemas si los archivos son un poco grandes ya que el tiempo maximo de ejecución de 30 seg me límita. Está claro que en mi server puedo aumentar el tiempo, pero de que manerá se puede hacer para que no haya problemas con el tiempo de ejecución?

3.- Para subir los 6 archivos repito "casi" el mismo código las 6 veces, hay manera de poner eso dentro de un buble for o similar? no he encontrado la manera.

Ahi va el código
Saludos y muchas gracias

Código PHP:
<?php

// Definimos datos del servidor a conectar
$ftp_server 'servidor.com';
$ftp_usuario_nombre 'usuario';
$ftp_usuario_pass 'contraseña';

// Definimos rutas (local / servidor)
$path_local "";
$path_destino "public_html/fotos/";

// Definimos nombres de archivos de fotos
$archivo1 "foto1.jpg";
$archivo2 "foto2.jpg";
$archivo3 "foto3.jpg";
$archivo4 "foto4.jpg";
$archivo5 "foto5.jpg";
$archivo6 "foto6.jpg";

// Unimos el path local con el archivo
$archivo_local1 $path_local.$archivo1;
$archivo_local2 $path_local.$archivo2;
$archivo_local3 $path_local.$archivo3;
$archivo_local4 $path_local.$archivo4;
$archivo_local5 $path_local.$archivo5;
$archivo_local6 $path_local.$archivo6;

// Unimos el path servidor con el archivo
$archivo_servidor1 $path_destino.$archivo1;
$archivo_servidor2 $path_destino.$archivo2;
$archivo_servidor3 $path_destino.$archivo3;
$archivo_servidor4 $path_destino.$archivo4;
$archivo_servidor5 $path_destino.$archivo5;
$archivo_servidor6 $path_destino.$archivo6;

// configurar conexion basica
$conn_id ftp_connect($ftp_server);
// iniciar sesion con nombre de usuario y contraseña
$login_result ftp_login($conn_id$ftp_usuario_nombre$ftp_usuario_pass);

// ftp_chdir cambiar de directorio, si no exite crear pero si existe vamos a él, y el path de la foto cambia
if (!ftp_chdir($conn_id,$path_destino))
{
    
// intentar crear el directorio $dir
    
if (ftp_mkdir($conn_id$path_destino)) {
    echo 
"se creo $path_destino con exito\n ";
    } 
    else {
    echo 
"Hubo un problema al crear $path_destino\n ";
    }
}
else{
// Si el directorio está creado nos iremos directamente a él, entonces no necesitamos el path 
// del servidor sino solo el nombre del archivo
$archivo_servidor1 $archivo1;
$archivo_servidor2 $archivo2;
$archivo_servidor3 $archivo3;
$archivo_servidor4 $archivo4;
$archivo_servidor5 $archivo5;
$archivo_servidor6 $archivo6;
}

// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor1$archivo_local1FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor1 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }
// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor2$archivo_local2FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor2 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }
// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor3$archivo_local3FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor3 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }
// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor4$archivo_local4FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor4 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }
// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor5$archivo_local5FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor5 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }
// Subir un fichero local $local_file a un servidor con el nombre de $server_file
    
if (ftp_put($conn_id$archivo_servidor6$archivo_local6FTP_BINARY)) {
        echo 
"Archivo $archivo_servidor6 subido correctamente\n";
        } 
        else {
        echo 
"Ha habido un problema\n";
        }

// cerrar la conexion
ftp_close($conn_id);

?>
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:44.