日期:2014-05-20  浏览次数:20749 次

急!如何判断和识别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会获取这个信息,形成下载后缀名