我需要将文件从我的目录发送给用户。问题文件未发送。 任何人都可以帮助我吗?
我的代码就像:
CHttpServerContext* pCtxt;
// ... there i set headers for open
DWORD dwRead;
CString fileName = "c:\txt.doc";
HANDLE hFile = CreateFile (fileName, GENERIC_READ, FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES) NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, (HANDLE) NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
return;
}
int c = 0;
CHAR szBuffer [2048];
do
{
if (c++ > 20) {
break;
return;
}
// read chunk of the file
if (!ReadFile (hFile, szBuffer, 2048, &dwRead, NULL))
{
return;
}
if (!dwRead)
// EOF reached, bail out
break;
// Send binary chunk to the browser
if (!pCtxt->WriteClient( szBuffer, &dwRead, 0))
{
return;
}
}
while (1);
CloseHandle (hFile);
}
答案 0 :(得分:3)
我的意思是,你几乎没有提供有关发生的事情的信息。
CHttpServerContext
?TransmitFile
功能。答案 1 :(得分:0)
重新发明轮子没有意义 - 只需使用TransmitFile API - 它内置于CHttpServerContent::TransmitFile()。