从URL查找文件扩展名

时间:2012-05-11 09:52:40

标签: c# asp.net file file-extension

我想找到当前网址中文件的扩展名。 我用过了 http://tol.imagingtech.com/eIL/cgi-bin/eIL.pl?ACTION=get_trans_doc&DOC=ALL&CAB_NAME=TOL_AP_2012&WHSE=18&PAYEE=23003655&INV=01235770

这个文件的扩展名是(.pdf)我怎么能得到这个。有时会是(.doc,.txt,.jpeg),所以我想要一个确切的。

以下是我用来检索文件扩展名的代码

var extFile = Document.DocumentFilePath.Split('.');
return "Backup document." + extFile[extFile.Length-1].Trim().ToLower();

它适用于普通的本地路径,但无法检索DocumentFilePath为url的扩展名。

3 个答案:

答案 0 :(得分:5)

我认为没有实际获取文件类型就无法获取文件类型。

您的请求完成后,您可以在回复header中获取相关信息。

Content-Type: image/jpeg

您可以使用WebClient

在C#中执行此操作
 WebClient client = new WebClient();
 var url = "http://tol.imagingtech.com/eIL/cgi-bin/eIL.pl?ACTION=get_trans_doc&DOC=ALL&CAB_NAME=TOL_AP_2012&WHSE=18&PAYEE=23003655&INV=01235770";
 string data = client.DownloadString(url);
 string contentType = client.Headers["Content-Type"];

答案 1 :(得分:3)

对URL执行HEAD请求,如果正在使用,请查看Content-Disposition: attachment; filename=FILENAME标题。

答案 2 :(得分:1)

要查找内容类型,请从Http响应中获取,如下所示:

byte[] myDataBuffer = webClient.DownloadData(fileAbsoluteUrl);
string contentType = webClient.ResponseHeaders["Content-Type"];