用HTTP下载时怎样实现断点传输?(50分)

  • 主题发起人 主题发起人 ssppff
  • 开始时间 开始时间
S

ssppff

Unregistered / Unconfirmed
GUEST, unregistred user!
有哪位朋友能帮帮我,用HTTP下载时怎样实现断点传输?主要问题是在服务端怎样让文件重定位,
下次下载时能从定位处开始传输.
 
定个邮件,up一下
 
请查看Hypertext Transfer Protocol -- HTTP/1.1
www.rfc-editor.com
使用HEADER中Range: bytes=1340-5690指定传输范围
 
楼上是老大
 
留下盒子,给你code ,给我分。
 
应该是这个:
function InternetSetFilePointer(hFile: HINTERNET;
lDistanceToMove: Longint; pReserved: Pointer;
dwMoveMethod, dwContext: DWORD): DWORD;
具体参数意思你查一下 MSDN 就知道了。
 
使用ICS控件,很好用:
http://users.pandora.be/sonal.nv/ics
 
搜索以前的贴子,讨论过很多次啦。实现方法可以用控件,也可以自己用TClientSocket实现。(比前者要求高)
 
使用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;
这个问题大概可以用这个方法解决
老兄有时间帮忙看看我的问题,我快急死了!问题如下:
在邮件附件的头部加上contenttype也行,使之变为形如:"附件:aa.jpg (image/jpeg,2342字节)"也可以,
 
多人接受答案了。
 

Similar threads

后退
顶部