社区
网络及通讯开发
帖子详情
请教用TIdFTP上传或下载文件时,如何用进度条显示上传或下载的进度???
endless
2005-12-29 08:44:58
我做过相关试验,TIdFTP上传文件时,无法促发OnWork事件,请高手指教!!!
...全文
640
6
打赏
收藏
请教用TIdFTP上传或下载文件时,如何用进度条显示上传或下载的进度???
我做过相关试验,TIdFTP上传文件时,无法促发OnWork事件,请高手指教!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2005-12-30
打赏
举报
回复
在OnStatus事件里也可以处理。
shally5
2005-12-30
打赏
举报
回复
double AverageSpeed;
int FileLenCurrentCount;
void __fastcall TForm1::IdFTP1Work(TObject *Sender, TWorkMode AWorkMode,
const int AWorkCount)
{
AnsiString s;
TDateTime TotalTime;
WORD H, M, Sec, MS;
double DLTime;
TotalTime = Now() - STime;
DecodeTime(TotalTime, H, M, Sec, MS);
Sec = Sec + M * 60 + H * 3600;
DLTime = Sec + MS / 1000;
FileLenCurrentCount=AWorkCount/1024;
if (DLTime > 0)
AverageSpeed = (AverageSpeed + (AWorkCount / 1024) / DLTime) / 2;
s = FormatFloat("0.00 KB/s", AverageSpeed);
switch (AWorkMode)
{ case wmRead:
{ Label2->Caption = "下载速度 " + s;
if(FileLenCurrentCount>0)
Label3->Caption ="下载 "+IntToStr(FileLenCurrentCount)+" KB 总计 "+IntToStr(FileLenCount)+" KB";
break;
}
case wmWrite:
{
Label2->Caption = "上传速度 " + s;
if(FileLenCurrentCount>0)
Label3->Caption="上传 "+IntToStr(FileLenCurrentCount)+" KB 总计 "+IntToStr(FileLenCount)+" KB";
}
};
if (AbortTransfer)
IdFTP1->Abort();
ProgressBar1->Position = AWorkCount;
AbortTransfer = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdFTP1WorkBegin(TObject *Sender,
TWorkMode AWorkMode, const int AWorkCountMax)
{
STime = Now();
if (AWorkCountMax > 0)
{
ProgressBar1->Max = AWorkCountMax;
}
else
{
ProgressBar1->Max = BytesToTransfer;
}
AverageSpeed = 0;
FileLenCount=AWorkCountMax/1024;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdFTP1WorkEnd(TObject *Sender, TWorkMode AWorkMode)
{
BytesToTransfer = 0;
ProgressBar1->Position = 0;
AverageSpeed = 0;
FileLenCount=0;
FileLenCurrentCount=0;
}
constantine
2005-12-30
打赏
举报
回复
const AWorkCount: Integer);
const AWorkCountMax: Integer);
看看这两个 参数,在onwork,onworkbegin里面
不会触发?你可以上传吗?应该代码有问题吧,read,write应该都会触发的
endless
2005-12-30
打赏
举报
回复
怎么每人回答????
sfengnet
2005-12-30
打赏
举报
回复
恭喜楼主解决问题,
接分!!
endless
2005-12-30
打赏
举报
回复
我已经搞定了,谢谢大家
利用Indy的
TId
Ftp
控件实现
FTP
协议, 远程
下载
上传
文件
现在很多应用都需要
上传
与
下载
大型
文件
,通过HTTP方式
上传
大
文件
有一定的局限性。幸好
FTP
作为一个非常老而且非常成熟的协议可以高效稳定地完成大
文件
的
上传
下载
,并且可以完美地实现续传。就拿我写的电影服务器管理端程序来说,各种方案比较后,发现使用
FTP
可以完美地实现要求。但是要通过WinSocket库实现
FTP
比较麻烦,幸好有Indy--一个包装了大多数网络协议的组件包。 通过Indy,程序设计人员
delphi中利用Indy的
TId
Ftp
控件实现
FTP
协议
现在很多应用都需要
上传
与
下载
大型
文件
,通过HTTP方式
上传
大
文件
有一定的局限性。幸好
FTP
作为一个非常老而且非常成熟的协议可以高效稳定地完成大
文件
的
上传
下载
,并且可以完美地实现续传。就拿我写的电影服务器管理端程序来说,各种方案比较后,发现使用
FTP
可以完美地实现要求。但是要通过WinSocket库实现
FTP
比较麻烦,幸好有Indy--一个包装了大多数网络协议的组件包。 通过Indy,
利用Indy的
TId
Ftp
控件实现
FTP
协议
Delphi客户端通过
FTP
服务器
上传
或
下载
文件
或图片方法 首先在服务器端建立
FTP
服务器,网上有这种类型的软件,安装好后,在客户端建立服务器连接,然后再
上传
或
下载
文件
或图片。 一、服务器连接 procedure TForm1.ConnectButtonClick(Sender: TObject); begin if not Id
FTP
1.Connected then //如果与服务器断开连...
delphi
TId
FTP
的使用
转载原文:http://www.cnblogs.com/Dragon7/archive/2011/07/11/2103363.html 1 连接远程服务器 procedure Connect(AAutoLogin: boolean; const ATimeout:
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章