Показать сообщение отдельно
  #5  
Старый 24.06.2010, 09:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

абсолютно рабочий код:
http://data.cod.ru/61532
Код:
unit Unit1;

interface

uses
  IdMultipartFormData,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses IdHeaderList;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  idmultipartformdatastream: TIdMultiPartFormDataStream;
begin
  IdHTTP1.Get('http://data.cod.ru');
  idmultipartformdatastream:=TIdMultiPartFormDataStream.Create;
  idmultipartformdatastream.AddFormField('action', 'file_upload');
  idmultipartformdatastream.AddFormField('password', '');
  idmultipartformdatastream.AddFormField('description', 'testing');
  idmultipartformdatastream.AddFormField('agree', '1');
  idmultipartformdatastream.AddFile('sfile', 'c:\Downloads\background2.bmp', 'application/octet-stream');
  try
    IdHTTP1.Post('http://data.cod.ru/cabinet/upload/', idmultipartformdatastream);
  except
    if IdHTTP1.ResponseCode div 100<>3 then raise;
    Edit1.Text:='http://data.cod.ru'+IdHTTP1.Response.RawHeaders.Values['LOCATION'];
  end;
end;

end.
только я изменил TIdMultiPartFormDataStream. добавил в него еще один параметр. так что тебе нужно будет написать (в самом исходнике):
idmultipartformdatastream.AddFile('sfile', 'c:\Downloads\background2.bmp', 'application/octet-stream');
Ответить с цитированием