hola amigos tengo el siguiente codigo y todo funciona muy bien. la pregunta es la siguiente:
como hago para subir a ftp una imagen pero directo del from o de un stream. es decir tengo un timagen y que me lea la imagen desde alli y la suba por ftp
Código Delphi
[-]unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdExplicitTLSClientServerBase, IdFTP, FMX.Controls.Presentation, FMX.StdCtrls,
FMX.Objects, IdHTTP;
type
TForm1 = class(TForm)
IdFTP1: TIdFTP;
Image1: TImage;
bt_guardar: TButton;
Button3: TButton;
IdHTTP1: TIdHTTP;
Button1: TButton;
Button2: TButton;
procedure bt_guardarClick(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure PedirImagen( URL, FICHERO, DIR_DESTINO:string );
var
Stream : TFileStream;
begin
ForceDirectories( DIR_DESTINO );
Stream := TFileStream.Create( DIR_DESTINO + '\' + FICHERO, fmCreate);
try
Form1.IdHTTP1.Get ( URL + '/' + FICHERO, Stream );
finally
Stream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var imagenstream : TStringSTream;
begin
imagenstream := TStringStream.Create('');
Form1.IdHTTP1.Get('http://192.168.1.185/adae/1.jpg', imagenstream);
Image1.Bitmap.LoadFromStream(imagenstream);
end;
procedure TForm1.bt_guardarClick(Sender: TObject);
begin
PedirImagen( 'http://192.168.1.185/adae', '1.jpg', 'A:\' );
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
IdFTP1.Username:= 'jaguero';
IdFTP1.Password:= '123456789';
IdFTP1.Port:= 21;
IdFTP1.Host:= '192.168.1.185';
try
IdFTP1.Connect;
IdFTP1.Put( 'img/img1.jpg', ExtractFileName( 'image1.jpg' ), false );
showmessage('Listo');
IdFTP1.Disconnect;
except
showmessage('Negativo');
end;
end;
end.