#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
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