通过URL取得下载文件名

ln_changcheng 2005-11-25 02:54:41
类似http://www.vckbase.com/code/downcode.asp?id=2817这类的URL下载链接,怎么取得它实际的下载文件的名称
...全文
519 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ln_changcheng 2005-11-30
  • 打赏
  • 举报
回复
我用其它方法实现了,谢谢各位的帮忙!
ln_changcheng 2005-11-25
  • 打赏
  • 举报
回复
还是没有试出来,能说的仔细一点吗?
kelinwang19 2005-11-25
  • 打赏
  • 举报
回复
用CHttpFile类,先new一个CInternetSession,然后通过GetHttpConnection创建一个连接
pSession = new CInternetSession(/*参数*/);
pConnection = pSession->GetHttpConnection((/*参数*/);
pHttpFile = pConnection->OpenRequest((/*参数*/);
如果pHttpFile不为空,pHttpFile->SendRequest();发http包,访问该网页,再通过
pHttpFile->QueryInfoStatusCode(dwHttpStatus);查看返回值,然后通过
pHttpFile->Read(/*参数*/)存取返回的字符串,在这个字符串里就会有你要下载的文件的名字了。


jerry 2005-11-25
  • 打赏
  • 举报
回复
这个参数,也许有,也许没有,要自己判断,没有的话,直接从原始网址里截取就行了
jerry 2005-11-25
  • 打赏
  • 举报
回复
hRequest = HttpOpenRequest(...);

HttpSendRequest(m_hRequest, NULL, 0, NULL, 0);
...

// 取实际下载文件名(可能包含路径)
char buffer[1024];
DWORD dwBufferSize = 1024;
DWORD dwIndex = 0;
HttpQueryInfo(hRequest, HTTP_QUERY_LOCATION , buffer, &dwBufferSize, &dwIndex);


...


ln_changcheng 2005-11-25
  • 打赏
  • 举报
回复
谢谢边城浪子,这个我也知道,我查了一些资料,好象得用HttpQueryInfo,但是我试不出来,最好能提供这方面的例子
jerry 2005-11-25
  • 打赏
  • 举报
回复
连接试试,查看返回的HTTP头,里面有文件名,不能直接从URL来得到实际下载的文件名的,因为这个取决于服务器对URL的重定向。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧