try
{
pFile = dynamic_cast<CInternetFile*>(m_pSession->OpenURL(
szURL, 1,
INTERNET_FLAG_TRANSFER_BINARY
| INTERNET_FLAG_DONT_CACHE
| INTERNET_FLAG_RELOAD
));
}
catch (CInternetException* e)
{
TCHAR szCause[255];
e->GetErrorMessage(szCause, 255);
m_pSession->SetStatus(szCause);
e->Delete();
delete pFile;
pFile = NULL;
return FALSE;
}if (strcmp(typeid(*pFile).name(), "class CHttpFile") == 0)
{
CHttpFile* pHttpFile = dynamic_cast<CHttpFile*>(pFile);
CString str;
pHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE, str);
if(atoi(str.GetBuffer()) == HTTP_STATUS_NOT_FOUND)
{
m_pSession->SetStatus("文件不存在!");
pHttpFile->Close();
return FALSE;
}
}上面的代码对于一般的文件都是可操作的(能正确执行)
但是如果是无后缀名的文件 就会提示出错 str=404 文件不存在
而服务器上明明是有文件的
郁闷了许久 Anyone know it?
{
pFile = dynamic_cast<CInternetFile*>(m_pSession->OpenURL(
szURL, 1,
INTERNET_FLAG_TRANSFER_BINARY
| INTERNET_FLAG_DONT_CACHE
| INTERNET_FLAG_RELOAD
));
}
catch (CInternetException* e)
{
TCHAR szCause[255];
e->GetErrorMessage(szCause, 255);
m_pSession->SetStatus(szCause);
e->Delete();
delete pFile;
pFile = NULL;
return FALSE;
}if (strcmp(typeid(*pFile).name(), "class CHttpFile") == 0)
{
CHttpFile* pHttpFile = dynamic_cast<CHttpFile*>(pFile);
CString str;
pHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE, str);
if(atoi(str.GetBuffer()) == HTTP_STATUS_NOT_FOUND)
{
m_pSession->SetStatus("文件不存在!");
pHttpFile->Close();
return FALSE;
}
}上面的代码对于一般的文件都是可操作的(能正确执行)
但是如果是无后缀名的文件 就会提示出错 str=404 文件不存在
而服务器上明明是有文件的
郁闷了许久 Anyone know it?
CHttpFile* pHttpFile = dynamic_cast<CHttpFile*>(pFile);
可能是有默认的文件扩展名,如果文件没有扩展名,就会加上默认的扩展名,然后去寻找,当然找不到了
后来在FTP是可以的
谢谢楼上的