CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

用NMFTP时遇到的一个问题,求解

楼主hnhb(不死鸟)2003-09-02 22:49:58 在 Delphi / 数据库相关 提问

程序中是用的NMFTP从服务器中下载需要的文件,下载的文件总共有二十来个的样子,下载的单个文件通常都是几百K至2M左右。  
   
    我的问题是若客户端和服务器在一个网段上的时候,不管下多大的文件都能正确下载,但如果跨了几个网段,如果那些下载的文件中有某个文件较大的话(其实也不算很大,4M左右,每月总有一天,有一个要下载的文件会突破4M),这个较大的文件总是下载不全,不得其解,盼有解答 问题点数:40、回复次数:5Top

1 楼Drate(小虫(好好学习,天天向上))回复于 2003-09-02 23:02:40 得分 20

下载不全有没有提示呀?  
  不会就这么不声不响的就完了吧?  
  或者你可以在INTERNET上试试会不会有这样的情况呢?  
  Top

2 楼Drate(小虫(好好学习,天天向上))回复于 2003-09-02 23:03:32 得分 0

要不用NMFTP的断点续传试试?  
   
  端点续传          
      断点续传是支持从文件的不同偏移开始传送数据,普通传送是从文件开头传送,    
  在   RETR   或   STOR   命令发送前先发送一个   REST   xxx,表示从文件的偏移   xxx   处  
   
  开始传送,注意,有的服务器可能不支持   REST   命令。  
   
  如果使用ICS控件,那么  
   
  HttpCli.ContentRangeBegin   :=   '100'   表示从100开始  
   
  HttpCli.ContentRangeEnd   :=''   表示一直到结束  
   
  HttpCli.ContentRangeEnd   :='200'   表示到200字节处结束  
   
  如果使用   TNMHTTP   控件  
   
  在OnAboutToSend事件,写:  
   
  NMHTTP1.SendHeader.Values['Range']   :=   'bytes=100-'   表示从100字节处开始下载到最后  
   
  NMHTTP1.SendHeader.Values['Range']   :=   'bytes=100-200'   表示从100字节处开始下载到200字节处结束  
   
  ***************  
   
  procedure   TForm1.Button6Click(Sender:   TObject);  
   
  var  
   
  f:TSearchRec;  
   
  begin  
   
  FindFirst('a.doc',faAnyFile,f);  
   
  fPreSize:=f.Size;  
   
  NMFtp.DoCommand('Rest   '+IntToStr(fPreSize));  
   
  NMFtp.DownloadRestore('a.doc','a.doc');  
   
  end;  
   
  这是用TNMFtp来续传的代码。  
     
     
  ---以上资料来自《DELPHI   TIPS》Top

3 楼hnhb(不死鸟)回复于 2003-09-02 23:12:44 得分 0

to   Drate(小虫):  
      那个FindFirst是自定义函数吗?我在delphi的帮助里找不到啊!  
   
  Top

4 楼hnhb(不死鸟)回复于 2003-09-02 23:16:11 得分 0

下载不全没提示,提示的全是写在OnSuccess里的代码,写在OnFailure里的代码一句都没提示出来。  
   
  我下载的那些文件全是ZIP文件,直到程序解压不正常我才发现文件没有下载完全的。  
   
  另:  
  你的代码中的那个FindFirst()是自定义函数吗?我怎么在Delphi的帮助里找不到?  
  Top

5 楼hnhb(不死鸟)回复于 2003-09-02 23:21:29 得分 0

再追问一下:  
   文件全部下载完后,没有断开FTP继续对下载到本地的文件做别的处理,可是如果过了大概十来分钟才处理完后,FTP好象自己自动断开了,如果只处理几分钟的话,FTP不会断开,这时又可以下载别的文件了,这是怎么回事?Top

6 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2003-09-03 00:19:14 得分 20

断点技术  
   
  不要在使用NM组件了,很不好用的,现在是Indy最好了  
   
  LYFTP   http://lysoft.7u7.netTop

相关问题

  • visual studio 2005使用中遇到的问题求解
  • 开发Windows Forms用户控件时遇到的二个问题请求解决
  • 小弟刚接触ASP.NET,遇到文件调用的问题,请求解决!
  • 愿用100求解??
  • Javascript用法求解
  • 关于在Sub里使用记录集的问题,遇到几次了,求解决办法?
  • 请问大家有没遇到"用户 'A\ASPNET' 登录失败"的问题?寻求解答.高分报酬!
  • 求解:table控件用法?
  • 求解答Javascript 调用 CSS
  • 数据库难道,也许你也会遇到。高分求解

关键词

  • 文件
  • 下载
  • 断点
  • 代码
  • 服务器
  • delphi
  • nmftp
  • httpcli
  • 断开
  • 提示

得分解答快速导航

  • 帖主:hnhb
  • Drate
  • ly_liuyang

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo