Board logo

主題: [C&C++] [問題]如何下載HTTP網頁上的檔案? [打印本頁]

發表人: sds06911    時間: 2007-5-10 04:21 PM     主題: [問題]如何下載HTTP網頁上的檔案?

想請問是否有大大知道MFC有沒有提供什麼函式可以下載HTTP上的檔案.
例如:
要寫個程式,當按下"下載檔案"的按鈕時,會到"http://xxx.xxx.xx/xxx/abc.exe"
下載abc.exe檔.

P.S.如果有可以自訂檔案存放路徑的方法,而不是顯示IE的那種下載檔案視窗,
      再選存放路徑,這樣程式設計起來會比較好管理檔案.
發表人: pil890    時間: 2007-5-12 11:36 AM

提供另一個方法, 不用寫程式 :
我都是在命令提示符號下用手動下載的方式, linux 下有一個工具程式叫 wget
使用方法 : wget http://<ip_address>/test.html

它同時也有 for Win32 的版本, 所以你可以用 google 去找!

另外, 它也有支援續傳的功能喔,
使用方法 : wget -c http://<ip_address>/test.html

因為是 open source 的, 所以若是你有客製化的需求,
也可以自己修改成有 UI 介面的程式!
發表人: sds06911    時間: 2007-5-15 04:52 PM

感謝pil890提供的方法, m( _ _ )m
讓我知道還有這種工具可以使用,以後有抓不太下來的檔案時,可以用這試試..

另外,在我不斷的拜訪Google及MSDN二位大神之後.也讓我找到相關的資料
及範例程式.
範例程式網址 http://www.codeproject.com/internet/urldownload.asp

它主要是利用 URLDownloadToFile 函式來做的,此函式有五個參數
1.指向一個 ActiveX container 的指標
2.檔案存放的URL網址
3.下載後儲放的路徑
4.不清楚是啥,但給它0就好了
5.一個 IBindStatusCallback 類別物件的指標

其中比較需要注意的是 IBindStatusCallback 類別吧,
此類別中的函式全是虛擬函式,所以必須做改寫的動作,
而這個範例中它只在OnProgress()函式裡做客制化的動作,
其它的函式則直接回傳一個值(E_NOTIMPL).
OnProgress 函式主要是在處理下載進度的跑馬燈功能

以上是我看了範例程式後的心得,給大家參考,如有需要也可去下載範例來玩看看.




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0