Hola de nuevo, amigos del foro.
El problema que me ocupa ahora es el título del hilo. Bueno, los archivos serían fundamentalmente de TEXTO.
Como siempre, antes de pedir vuestra ayuda, llevo varios días buscando en la red.
He encontrado varias referencias, entre ellas una de Neftalí (como no).
Pero no me funcionaron ninguna.
Mi servidor es https. Al intentar las soluciones por TidHTTP no funcionaron. La solución de Neftalí a este problema no supe resolverla.
Prefiero hacerlo por FTP .
He visto varias soluciones con este método, pero (ni replicando el código) he conseguido ni siquiera conectar con mi web.
De todos los ejemplos que he encontrado, me ha parecido el más completo este:
Código Delphi
[-]
procedure TForm4.Button1Click(Sender: TObject);
var
filename : String;
Thread : TThread;
idFTP1 : TidFTP;
FS : TMemoryStream;
sPath :String;
begin
FileName := '/Imagen.jpg';
FileName := '/ImgMaps/2YUxJ.jpg';
Thread := TThread.CreateAnonymousThread(
procedure
begin
IdFTP1.Host := 'xxx.xxx.xxx';
IdFTP1.Username := 'xxxxxx';
IdFTP1.Password := 'xxxxx';
IdFTP1.Passive := True;
IdFTP1.ConnectTimeout := 60000;
Fs := TMemoryStream.Create;
try
IdFTP1.Connect;
try
IdFTP1.TransferType := fsBinary;
IdFTP1.Get(FileName, FS);
finally
IdFTP1.Disconnect;
end;
FS.Position := 0;
TThread.Synchronize(nil,
procedure
begin
Image1.Bitmap.LoadFromStream(FS);
end
);
finally
Fs.Free;
end;
end
);
Thread.OnTerminate := ThreadTerminated;
Thread.Start;
end;
procedure TForm4.ThreadTerminated(Sender: TObject);
begin
if TThread(Sender).FatalException <> nil then begin
ShowMessage('Failed')
end else begin
ShowMessage('Success');
end;
end;
Como digo, he intentado replicarlo, CON UNA IMAGEN, aunque esto no es lo que pretendo. Sólo para comprobar si funcionaba, pero no me ha funcionado. Me da el mensaje "Failed".
Buscando errores, y sabiendo que mi web no permite ftp "anónimo" (Lo he comprobado en CuteFTP 9) he intentado probar quitando el TThread y me provoca un "Access Violation" al asignar los valores de acceso al FTP, cuando no están dentro del Thread.
Código Delphi
[-]
IdFTP1.Host := 'xxx.xxx.xxx';
Bueno. no quiero aburrir más.
Agradecería información sobre el tema. Está claro que nunca hice nada parecido (y, conociendo mis posibilidades y mi suerte, probablemente no lo haré nunca).
Sigo buscando....
Saludos cordiales.