본문 바로가기
Delphi, RadStudio

[개발/delphi] Indy 을 이용한 idHTTP POST 파일 전송 예제

by SB리치퍼슨 2012. 1. 25.
[개발/delphi] Indy 을 이용한 idHTTP POST 파일 전송 예제

출처 : http://namul.pe.kr/10?category=4


Indy 에 TidMultiPartFormData 유닛이 있더군요. 

TidMultiPartFormDataStream 을 이용해서 

파일등을 POST하는 예제 입니다.

procedure TFmMain.Button1Click(Sender: TObject);
var
  DataStream : TidMultiPartFormDataStream;
  rs: TMemoryStream;
begin
  DataStream := TIdMultiPartFormDataStream.Create;
  rs := TMemoryStream.Create;
  try
    idHTTP1.Request.ContentType := DataStream.RequestContentType;
    DataStream.AddFormField('logid',Trim(Edit1.Text));
    DataStream.AddFormField('passwd',Trim(Edit2.Text));

    // Post 로 apple_logid 와 apple_passwd 값을 전송합니다.
    DataStream.AddFile('upfile','e:\downlogo.bmp','application/octet-stream');

    // upfile 변수에 'e:\downlogo.bmp' 파일 을 추가 합니다.. 
    DataStream.Position := 0;
    try
      IdHTTP1.Post('test.php',DataStream,rs);
    finally
      ShowMessage(PChar(rs.Memory));
    end;
  Finally
    DataStream.Free;
  end;
end;
반응형

댓글