2011-10-13 192 views

回答

10

为什么Path.GetExtension不适合你?

编辑
啊,所以你的网址没有指定你的扩展名。这意味着任何东西都可能在它后面。

只需检查url的字符串值,就看不到它后面会有什么。您的(第二个)示例指向(最终)一个.gif文件,但它也可能是.jpg,.doc(甚至是.exe)。

您将需要做一个webrequest,看看你回来。通常你可以尝试一个HEAD来获取标题(并检查内容类型),但我认为这不会起作用。试试Fiddler看看你回来了什么,然后你可以改进你的问题。

+0

这是否可以在网站上使用? – musefan

+1

'Path.GetExtension(“http://www.someserver.com/image.gif”)'returns“.gif” –

+0

啊是的,这将工作,但它不会给出的例子...我以为你有发现一个超级棒的功能,然后,我等着非常感动:D – musefan

0

你可以将字符串分割为char'。'并获得了最后一个字符串返回数组中..

+0

no.this url文件名是hash.filename = 02912bb889cb24 – ashkufaraz

+0

如果字符串中没有文件扩展名,那么这个例子不是。不是 – musefan

+0

不明显,因为这个例子是一个失败......这是怎么回事? – Rob

6

检查出在这里:

http://www.java2s.com/Code/CSharp/Network/GetHTTPResponseheaders.htm

你会有兴趣这应该给你一些像“图像/ GIF”了的response.ContentType gif图片

+0

这取决于设置的内容头。鉴于asp.net标签,我会想象@Curt的答案是更正确的,而且需要的是实际在asp中应用内容类型。 – stevenrcfox

+0

@Overflow,我知道它需要服务器在处理该URL调用时需要设置内容类型。我的假设是,该URL用于提供文件下载(如URL本身所建议的),并且很可能服务器将返回仅包含图像的响应流,并因此设置了内容类型。当然,内容类型可能是错误的,这取决于实现。但要做到这一点,实施应提供正确的内容类型,因此我的答案将能够找出文件类型 – musefan

1

此URL似乎可能链接到将为文件下载的页面。

02912bb889cb24可能是该文件的数据库引用。

因此没有获得任何API为这个系统,我不认为它可以在所有制定出通过该URL访问的文件的扩展名

+0

我倾向于认为这是最准确的答案,有几个补充,1.当文件上传时,您应该能够获得内容类型并将其保存到数据库与文件。然后下载文件时,您应该能够再次设置内容类型。 – stevenrcfox

4

试试这个

string path = @"http://www.iranfairco.com/download-file/02912bb889cb24.gif"; 
string e = Path.GetExtension(path); 
+0

url等于29493903并不等于290930232.gif – ashkufaraz