在C#/ .NET中检测图像URL
有没有办法可以检测到图片url,例如:
https://mysite.com/image.jpg
但是还有其他格式吗? 我在.NET 4.0中使用C#。
就像是
bool isImageUrl(string URL){ }
编辑我的意思是如果URL指向图像。 例如,URL
https://mysite.com/image.jpg
是一个有效的图像,但是
https://mysite.com/image
不是。
您可以向URL发送HTTP请求(使用HttpWebRequest
),并检查返回的ContentType
是否以image/
开头。
您可以使用Http的HEAD
方法确定它(不下载整个图像)
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/"); } }
您当然可以简单地检查URL是否以已知的图像文件扩展名结尾。 但是,更安全的方法是实际下载资源并检查您获得的内容是否是图像:
public static bool IsUrlImage(string url) { try { var request = WebRequest.Create(url); request.Timeout = 5000; using (var response = request.GetResponse()) { using (var responseStream = response.GetResponseStream()) { if (!response.ContentType.Contains("text/html")) { using (var br = new BinaryReader(responseStream)) { // eg test for a JPEG header here var soi = br.ReadUInt16(); // Start of Image (SOI) marker (FFD8) var jfif = br.ReadUInt16(); // JFIF marker (FFE0) return soi == 0xd8ff && jfif == 0xe0ff; } } } } } catch (WebException ex) { Trace.WriteLine(ex); throw; } return false; }
您可以使用.EndsWith()为您定义的每组字符串检查字符串。
如果您想知道该URL上的对象是否实际上是图像,您必须自己执行Web请求并检查内容类型的HTTP标头。
但是,这可能是不准确的,具体取决于服务器。
上述就是C#学习教程:在C#/ .NET中检测图像URL分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/996960.html