读书人

在http服务器上载文件

发布时间: 2014-07-18 16:26:17 作者: rapoo

在http服务器下载文件

CInternetSession isSession;
//CString strDownloadURL = GetURLOfConfig();
CString strDownloadURL = _T("http://192.168.18.140/temp/VersionInfo.txt");
CHttpFile *pHttpFile = (CHttpFile *)isSession.OpenURL(strDownloadURL);


ULONGLONG ullLen = pHttpFile->GetLength();

BYTE *pBuf = new BYTE[ullLen];
if (!pBuf)
{
return false;
}

DWORD dwWriten;
pHttpFile->Read(pBuf, ullLen);

//当把test.zip改成test.txt完全OK, 但是test.zip就不行,test.zip文件打不开
HANDLE hFile = ::CreateFile(_T("test.zip"), GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
return false;
}
DWORD dwError = GetLastError();

::WriteFile(hFile, pBuf, ullLen, &dwWriten, NULL);

CloseHandle(hFile);
isSession.Close();
pHttpFile->Close();

如果从http服务器下载.zip文件会出现,这里得到的文件大小与事实不同;
不知什么原因,希望大家帮个忙
[解决办法]
要循环Read,还有LastError的值是多少?
[解决办法]
就是循环Read的问题,没做过通信是这样的。

一次收不完的,顶1楼

读书人网 >VC/MFC

热点推荐