Отправка Post

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by batR, 16 Jul 2007.

  1. batR

    batR Member

    Joined:
    10 Mar 2007
    Messages:
    7
    Likes Received:
    7
    Reputations:
    0
    Отправляю файл на php скрипт следующим кодом
    Code:
    procedure 
    TForm2.Button2Click(Sender: TObject);
    var FileName: string;response: string;
    var formData: TIdMultiPartFormDataStream;
    begin
    FileName := 'c:\pic.gif';
    formData := TIdMultiPartFormDataStream.Create;
    formData.AddFile('File',fileName,'application/octet-stream');
    formData.AddFormField('param1', 'value1');
    //HttpObject.Port := Port;
    response := idHTTP1.Post('http://myhost/ppost.php',formData);
    Label1.Caption:= response ;
    Memo1.Lines.Text:= response ;
    end;
    Можно ли прибабахать сюда индекатор отправки файла, тоесть например через каждую секунду проверять сколько отправилось и выводить это число в label
    или через каждый килобыйт обновлять label
     
    #1 batR, 16 Jul 2007
    Last edited: 16 Jul 2007
  2. Jes

    Jes Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    Радикальный/самый оптимальный вариант;
    sources/indy/idHTTPServer.pas и переписываешь компонент полностью под свои нужды... (потом его перекомпилить не забуть) :p
     
  3. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    Создаешь обработчик события OnWork для IdHTTP.

    В обработчике выводишь число прочитанных/отосланных байт:

    procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
    const AWorkCount: Integer);
    begin
    if(AWorkMode=wmWrite) then
    label2.Caption := 'Sent: '+intToStr(AWorkCount)+' bytes'
    else
    label2.Caption := 'Received: '+intToStr(AWorkCount)+' bytes';
    Application.ProcessMessages();
    end;
     
  4. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    а не проще через обычные socket()'ы ?
     
    1 person likes this.