Oto przykład użycia Indy, żeby móc dodawać JPEG do serwera WWW z systemem Gallery
Mam kilka przykładów tego typu rzeczy (ja używam ich w wygaszacz ekranu napisałem w Delphi dla projektu Galerii dostępnych here lub więcej informacji na stronie internetowej galerii here).
Uważam, że ważnym bitem jest to, że JPEG jest przekazywany jako strumień.
procedure AddImage(const AlbumID: Integer; const Image: TStream; const ImageFilename, Caption, Description, Summary: String);
var
Response: String;
HTTPClient: TidHTTP;
ImageStream: TIdMultipartFormDataStream;
begin
HTTPClient := TidHTTP.Create;
try
ImageStream := TIdMultiPartFormDataStream.Create;
try
ImageStream.AddFormField('g2_form[cmd]', 'add-item');
ImageStream.AddFormField('g2_form[set_albumId]', Format('%d', [AlbumID]));
ImageStream.AddFormField('g2_form[caption]', Caption);
ImageStream.AddFormField('g2_form[force_filename]', ImageFilename);
ImageStream.AddFormField('g2_form[extrafield.Summary]', Summary);
ImageStream.AddFormField('g2_form[extrafield.Description]', Description);
ImageStream.AddObject('g2_userfile', 'image/jpeg', Image, ImageFilename);
Response := HTTPClient.Post('http://mygallery.com/main.php?g2_controller=remote:GalleryRemote', ImageStream);
finally
ImageStream.Free;
end;
finally
HTTPClient.Free;
end;
end;
Obsługa TIdHTTP również https? – Ampere
Tak, TIdHTTP obsługuje HTTPS. http://stackoverflow.com/a/6693653/19183 –
Czy parametry z 'lParamList' są takie same jak nieparametrowe parametry żądania do serwera http delphi (próbuję wysłać żądanie postu do już utworzonego serwera http delphi) –