小弟在做一个向网页上传文件的程序时遇到文件上传成功但上传的过程中只能触发第一次OnWork事件,之后程序再也没有触发OnWork知道上传结束。这样无法显示上传进度;(
基本代码如下:
MPFDS := TIdMultiPartFormDataStream.Create ;
MPFDS.AddFormField('Filename',ExtractFileName(FFilePath));
MPFDS.AddFile('Filedata',FFilePath,'');
IdHTTP1.Post('http://upload.xa.ku6.com/up.php?sid=128031231',MPFDS);procedure TFMain.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
  ProgressBar1.Position := ProgressBar1.Position + AWorkCount;
end;我后来测试了用Get方法打开网页就能在打开网页的过程中多次触发OnWork事件,实现显示打开进度的功能。
请问Post方法上传能否触发OnWork事件?如果做出上传进度条的效果?

解决方案 »

  1.   


    我用的是indy9 可以正常触发,你看看indy10里是不是有什么属性需要配置的
    procedure TForm1.Button1Click(Sender: TObject);
    var
      FileStream:TFileStream;
    begin
      FileStream:= TFileStream.Create('D:\squid.conf',fmOpenRead);
      IdHTTP1.Post('http://upload.xa.ku6.com/up.php?sid=128031231',FileStream);
      FileStream.Free;
    end;procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    begin
    showmessage('fdsa');
    end;
      

  2.   

    ...Indy 10 的Bug 需要在网站上下最新的版本才行。