在C#/ .NET中检测图像URL

svb*_*net 7 .net c# url c#-4.0

有没有办法可以检测到图片网址,例如:

http://mysite.com/image.jpg
Run Code Online (Sandbox Code Playgroud)

但是还有其他格式吗?我在.NET 4.0中使用C#.

就像是

bool isImageUrl(string URL){
}
Run Code Online (Sandbox Code Playgroud)

编辑我的意思是如果URL指向图像.例如,URL

http://mysite.com/image.jpg
Run Code Online (Sandbox Code Playgroud)

一个有效的图像,但是

http://mysite.com/image
Run Code Online (Sandbox Code Playgroud)

不是.

L.B*_*L.B 12

您可以使用HEADHttp方法确定它(不下载整个图像)

bool IsImageUrl(string URL)
{
    var req = (HttpWebRequest)HttpWebRequest.Create(URL);
    req.Method = "HEAD";
    using (var resp = req.GetResponse())
    {
        return resp.ContentType.ToLower(CultureInfo.InvariantCulture)
                   .StartsWith("image/");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,并非所有服务器都将处理`HEAD`,并且您应该将`OrdinalIgnoreCase`传递给`StartsWith`. (5认同)

SLa*_*aks 6

您可以向URL发送HTTP请求(使用HttpWebRequest),并检查返回的是否ContentTypeimage/.