急!如何判断和识别URL所连接的下载的文件的文件名和后缀
例如这个URL http://www.gamezero.cn/download.php?id=17951 所连的是一个文件 我需要判断这个URL所指的是什么文件名和后缀名,
或者 能否解析成类似于 http://img.poco.cn/photo/20070328/76268225220070328134709.jpg这样的带后缀的URL
总之我想知道那个URL 指向的是什么文件(包括文件名与后缀)
希望高手能列出实现的代码 感激 做项目用 送上100分
------解决方案--------------------看起来,这种URL http://www.gamezero.cn/download.php?id=17951需要在download.php文件里对id=17951处理才能找到真正的文件名(如果是文件的话)。
能知道download.php里是怎么实现的吗?
目标也许是文件,也许是数据库里的资料,也许是其他什么特殊定义的数据流,什么都有可能吧?
所以个人认为这个不太可行哦。
------解决方案--------------------首先可以肯定的一点是,单从这个 URL(http://www.gamezero.cn/download.php?id=17951)是不可能知道什么文件名的,因为它根本就没有“文件”的概念。
进一步讲,就算是你看到了 http://www.somecompany.com/some.html 这样的 URL,也未必能肯定存在着 some.html 这样一个文件。这个字符串只是一个标识,至于客户端用这个标识能得到什么,完全看服务器是怎么理解这个字符串的。
不过,也别太绝望。如果你发出这个 Request 之后,能在 Response Header 里发现类似下面的内容:
Content-disposition=attachment; filename=Some.file
那么,这里的文件名也许对你能有点帮助。
------解决方案--------------------用URLConnction
像http://www.gamezero.cn/download.php?id=17951这样的地址,肯定是要在服务器上执行后经返回后才知道文件类型.如果是http://www.asdf.com/a.exe之类的,我们可以直接从地址里取出这个文件名.但是不建议这样用.因为有可能这个文件已在服务器上删除而返回404错误.所以最好还是用URLConnection类.然后从服务器里返回的信息里取得文件名.
------解决方案--------------------在下载的HEAD里面加上下载类型,IE会获取这个信息,形成下载后缀名