如何下载网上的文件?需要用哪些控件?(100分)

  • 主题发起人 主题发起人 jemmylau
  • 开始时间 开始时间
J

jemmylau

Unregistered / Unconfirmed
GUEST, unregistred user!
给出一个网上文件的URL,也就是说该文件可能是个流,现在要用程序把该文件下载下来,并需要在下载过程中分析其中的数据,只保存部分数据到文件。

用哪些控件可以实现?给出思路就好了,请各位帮忙。谢谢!
 
这个就多了,主要是文件的协议好多几种HTTP/FTP/RSTP/MMS等等
你要是说一个通用的,呵呵,用TClientSocket或是TIdTCP吧.
HTTP可以用TIdHTTP
FTP可以用TIdFTP
其它的几种协议没有现成的,你得自己实现.
 
下载文件可以用idhttp控件的get
 
用HTTP的协议就可以了,不用考虑通用问题。

也就是本来通过http://www.xxx.com/a.dat就可以下载到文件的。
 
答案如wolfkilin
 
谢谢!

如果我先下载数据到内存中,比如我先处理一下,有可能显示给用户看,也有可能保存成文件。idhttp一个控件就能搞定了吗?
 
用IdHTTP可以将url取到流中,也可以取到串中,很方便的。
你可以用TImage/TMemo等东西来来显示得到的内容
 
很感谢。

我也明白如何使用IdHttp了。
但是如果我不是一次性就能把该文件读取下来,我该怎么做呢?好象没有收到数据的事件。
 
该控件是同步的。没有“收到数据的事件”。
如果你的HTTP头中有长度,那么该控件会自己将数据读完。否则你可以先Connect,然后自己读缓冲区。
更多的情况,请自己看Indy的帮助文档。
 
既然IdHttp不是同步的,那它还能满足我的需求吗?
 
老兄,我上面说的是“该控件是同步的。”[:D]
 
我现在对处理这个问题,还不知道用哪些东西,第一次用delphi做网络程序。请各位多多指教。

 
Idhttp 的OnWork 就是“收到数据的事件”
 
to llwu:
OnWork包括连接与头处理,不能算是"收到数据的事件",只能说是"有东西在处理的事件"
数据发送也是会OnWork的.
 
后退
顶部