#include <afxinet.h> // 需要包含此头文件
CString strRemote = _T("http://www.xxx.com/xxx.jpg"); // 文件地址
CString strLocal = _T("c:\\xxx.jpg"); // 保存路径
TRY
{
// 以二进制形式下载
CInternetSession is ;
DWORD dwFlag = INTERNET_FLAG_TRANSFER_BINARY | INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_RELOAD;
CHttpFile* phf = (CHttpFile*)is.OpenURL(strRemote, 1, dwFlag);
if (!pF)
{
AfxThrowInternetException(1);
}
// 分配缓冲区
char szBuffer[1024];
// 如果文件已存在,则首先删除之
CFile::Remove(strLocal);
// 每次下载1KB
CFile file;
while (TRUE)
{
int n = phf->Read(szBuffer, sizeof(szBuffer));
if (n <= 0)
break ;
file.Open(strLocal, CFile::modeWrite|CFile::typeBinary, NULL);
file.SeekToEnd();
file.Write(szBuffer, n);
file.Close();
}
delete phf ;
}
CATCH_ALL(e)
{
return FALSE;
}
END_CATCH_ALL
出处:http://blog.csdn.net/junchieh/archive/2007/03/09/1525751.aspx