PDA

Ver la Versión Completa : comprobar conexion ftp exitosa...


Greco
04-09-2008, 01:55:58
Hola, estoy creando una pequeña aplicacion que dentro de sus caracteristicas contiene la opcion de enviar un archivo a un servidor por FTP, para lo cual tengo unos cuantos EDTIT para ingresar los datos del servidor, host, usuario, pass y luego guardarlos en el registro de windows.
Lo que quiero es incluir un boton para testear la conexion al servidor para saber si los datos ingresados son correctos o hay algun error.

Como podría obtener el estado de conexion al servidor??

Utilizo el IdFtp de las Indy y este es el codigo que tengo para conectar y subir el archivo.

var
clienteFtp: TIdFTP;
begin
clienteFtp := TIdFTP.Create(Self);
try
with clienteFtp do
begin
Username := 'nombre_de_usuario';
Password := 'contraseña';
Host := 'ftp.servidor.com';
Connect; // Conectamos al servidor
// Creamos un nuevo directorio
SendCmd('MKD nuevo_directorio');
// Nos desplazamos al mismo
SendCmd('CWD nuevo_directorio');
// Subimos un archivo al nuevo directorio
Put('C:\file.txt', 'file.txt');
Disconnect; // Desconectamos del servidor
end;
finally
clienteFtp.Free;
end;

Ese es el codigo para conectar y subir el archivo al servidor, pero me interesa primero testear la conexion mediante algun boton, si tuvo exito la conexion entonces me desplegue un mensaje mediante un showmessage().

En resumen... como puedo verificar que la conexion al ftp fue exitosa??

Saludos

TOPX
04-09-2008, 02:13:46
Hola,

Puede evaluar la propiedad Connected del TIdFtp.

Greco
04-09-2008, 09:15:25
Hola,

Puede evaluar la propiedad Connected del TIdFtp.

Hola TOPX, gracias por responder.
Intente evaluar con un IF pero no me resultó, algo debo haber hecho mal.


...
if (clienteFtp.Connected) then
showmessage('Conexion correcta');
else
showmessage('Error al conectar');
end;
...


Debe ser por que está mal planteada la sentencia.

Saludos

TOPX
04-09-2008, 15:14:05
Lo único malo que ví en su código fue que sobraría el end;, pero igual, podría ser:


with TIdFTP.Create(nil) do
begin
try
Username := 'nombre_de_usuario';
Password := 'contraseña';
Host := 'ftp.servidor.com';
Connect;
if Connected then
begin
ShowMessage('Conexión exitosa.');
Disconnect;
end
else
begin
ShowMessage('Conexión fallida.');
end;
finally
Free;
end;
end;