IDHTTP.POST 上传文件时无法触发OnWork事件?

juziling 2008-02-19 11:43:44
小弟在做一个向网页上传文件的程序时遇到文件上传成功但上传的过程中只能触发第一次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事件?如果做出上传进度条的效果?
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
juziling 2008-02-25
  • 打赏
  • 举报
回复
...Indy 10 的Bug 需要在网站上下最新的版本才行。
hongqi162 2008-02-19
  • 打赏
  • 举报
回复

我用的是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;
juziling 2008-02-19
  • 打赏
  • 举报
回复
我用的是 Indy 10.1.5

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧