Delphi版本:Delphi7
组件:IdFTP
FTP服务器:Serv-U 6.3症状:当文件比较大,网络速度比较慢的情况下
IdFTP1.Put(order.FullFileName,order.FileName);
过程不返回,卡在这里不动,WorkEnd已经触发成功尝试了以下办法没有解决:
1、在WorkEnd事件中Abort;会导致文件上传不全
2、动态创建IdHttp组件未能解决问题跪求大神给予指点!解决后微信红包伺候!!!
组件:IdFTP
FTP服务器:Serv-U 6.3症状:当文件比较大,网络速度比较慢的情况下
IdFTP1.Put(order.FullFileName,order.FileName);
过程不返回,卡在这里不动,WorkEnd已经触发成功尝试了以下办法没有解决:
1、在WorkEnd事件中Abort;会导致文件上传不全
2、动态创建IdHttp组件未能解决问题跪求大神给予指点!解决后微信红包伺候!!!
IdFTP1.Put(order.FullFileName,order.FileName);
卡在这里不动,是因为文件未完成转输。建议:
1、通过线程操作;
2、线程加入计时,超时自动提示并退出。
indy的整个架构是基于阻塞模式的(标准bsd sockets模型),必须用多线程,indy的设计也考虑到这个问题,有一个TIdAntiFreeze组件,可以防止界面卡住,直接拖一个放在主窗体上即可,啥都不用写。