Delphi版本:Delphi7
组件:IdFTP
FTP服务器:Serv-U 6.3症状:当文件比较大,网络速度比较慢的情况下
IdFTP1.Put(order.FullFileName,order.FileName);
过程不返回,卡在这里不动,WorkEnd已经触发成功尝试了以下办法没有解决:
1、在WorkEnd事件中Abort;会导致文件上传不全
2、动态创建IdHttp组件未能解决问题跪求大神给予指点!
解决后微信红包伺候!!! 

解决方案 »

  1.   

    文件比较大,网络速度比较慢的情况下
    IdFTP1.Put(order.FullFileName,order.FileName);
    卡在这里不动,是因为文件未完成转输。建议:
    1、通过线程操作;
    2、线程加入计时,超时自动提示并退出。
      

  2.   

    用PUT在线程中传30GB的文件,都没遇到这个问题,反过来说,不在线程中的,卡界面的感觉没人能忍受
      

  3.   

    用ics的ftpclient,indy的在局域网还凑合,公网就会卡死
      

  4.   


    indy的整个架构是基于阻塞模式的(标准bsd sockets模型),必须用多线程,indy的设计也考虑到这个问题,有一个TIdAntiFreeze组件,可以防止界面卡住,直接拖一个放在主窗体上即可,啥都不用写。