PDA

Ver la Versión Completa : subir archivo a servidor ftp


m8estrella83
25-07-2007, 20:53:44
Hola a todos !!!

Espero me puedan ayudar les agradeceria mucho.

Desarrolle una aplicacion en delphi 5 de la cual me piden que envie un archivo de texto a un servidor ftp, el problema es que soy muy novata en esto no tengo idea de como empezar.
Me proporcionaron la direccion del servidor ftp y ademas en nombre del usuario y contraseña


De antemano muchas gracias !!!!

marcoszorrilla
25-07-2007, 21:08:31
Puedes utilizar el componente NMFTP de la paleta FastNet:

Procedure Concectarse_Al_Servidor();
begin
NMFTP.Host :='210.00.120.00';
NMFTP.Port := 21;
NMFTP.Timeout := 5000;
NMFTP.UserID := 'Mi_Nombre_de_Usuario';
NMFTP.Password := 'MiClave';
try
NMFTP.Connect;
except
On E:Exception do
writeln(E.message);
end;
end;


Procedure Subir_Fichero();
Var
cFichero_a_Subir:String;
cFichero_Subido:String;
begin
cFichero_a_Subir:='C:\Vendedores\Clientes.Txt';
cFichero_Subido:='Clientes.Txt';
NMFTP.UploadAppend(cSubirFichero,cFichero_Subido );
end;


Tienes un ejemplo de uso en las Demos que te vienen con Delphi.

Un Saludo.

seoane
25-07-2007, 21:14:09
También puedes usar Wininet

http://www.clubdelphi.com/foros/showpost.php?p=154690&postcount=3

Yun-i
29-10-2008, 21:29:00
Puedes utilizar el componente NMFTP de la paleta FastNet:


Código Delphi [-] (http://www.clubdelphi.com/foros/#)Procedure Concectarse_Al_Servidor();
begin
NMFTP.Host :='210.00.120.00';
NMFTP.Port := 21;
NMFTP.Timeout := 5000;
NMFTP.UserID := 'Mi_Nombre_de_Usuario';
NMFTP.Password := 'MiClave';
try
NMFTP.Connect;
except
On E:Exception do
writeln(E.message);
end;
end;


Procedure Subir_Fichero();
Var
cFichero_a_Subir:String;
cFichero_Subido:String;
begin
cFichero_a_Subir:='C:\Vendedores\Clientes.Txt';
cFichero_Subido:='Clientes.Txt';
NMFTP.UploadAppend(cSubirFichero,cFichero_Subido );
end;





Tienes un ejemplo de uso en las Demos que te vienen con Delphi.

Un Saludo.
excelente yo lo ocupe y funciono de maravilla gracias

DavidSG4
29-03-2012, 12:49:40
excelente yo lo ocupe y funciono de maravilla gracias

Muy buenas yo lo he probado y funciona de maravilla.

pero que ocurre si tienes que sobre escribir el fichero. no lo hace.

alguna idea

SAludos

marcoszorrilla
29-03-2012, 12:56:20
Yo lo borro así:
procedure TfrExpterminales.BtEliminarClick(Sender: TObject);
begin
EdFichero.Text:=IbDtsFicherosNombre.Value;
if (Length(IbDtsFicherosNombre.Value)>14) Or (UpperCase(Copy(IbDtsFicherosNombre.Value,1,2))<>'VE') then
begin
Try
if Application.MessageBox('¿Seguro que desea eliminar el fichero?','Atención',mb_OkCancel +
mb_IconQuestion)= idOk then
begin
IdFTP.Delete(IbDtsFicherosNombre.Value);
EdFichero.Text:='';
end;
btListar.Click;
Except
ShowMessage('ERROR:El Fichero no existe.');
end;
end
else
ShowMessage('Atención:Ese fichero no puede eliminarse.');

end;

Un Saludo.

marcoszorrilla
29-03-2012, 12:58:38
Y así cuando subo un fichero y ya existe en el servidor, se trata de un fragmento de código a modo de ejemplo:
procedure TfrExpterminales.btSubirClick(Sender: TObject);
var
F: File of byte;
sArchivo:String;
begin
cSubirFichero:= cCaminoZipExp+'Dat010'+Vendedor+'.Zip';
AssignFile( F, cSubirFichero );
Reset( F );
CloseFile( F );

btListar.Click;


if btConectar.Enabled = False then
begin


pnMensajes.Color:=ClBlack;

try
IdFTP.Delete('Dat010'+Vendedor+'.Zip');
Except
end;

//Subir archivo
Try
IdFTP.Put( cSubirFichero, ExtractFileName( cSubirFichero ), False );
except
ShowMessage('Se produjo un error al subir el fichero.');
end;

pnMensajes.Caption:='';
pnMensajes.Color:=clBtnFace;
btListar.Click;
end
else
ShowMessage('Primero tiene que conectar con el servidor.');

end;

Un Saludo.