.NET:验证 URL 是否为图像
我需要验证用户指定的 URL 是否指向图像。所以我确实需要一种方法来确定 URL 字符串是否指向有效图像。我怎样才能在.NET 中做到这一点?
I have a requirement to verify that a user-specified URL is to an image. So really I need a way to determine that a URL string points to a valid image. How can I do this in .NET?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果不下载文件(至少是其中的一部分),您就无法做到这一点。使用
WebClient
获取 URL 并尝试从返回的byte[]
创建新的Bitmap
。如果成功了,那就真的是一个形象了。否则,它会在过程中的某个地方抛出异常。顺便说一句,您可以发出
HEAD
请求并检查响应中的Content-Type
标头(如果存在)。然而,这种方法并不是万无一失的。服务器可能会使用无效的Content-Type
标头进行响应。You can't do that without downloading the file (at least a part of it). Use a
WebClient
to fetch the URL and try creating a newBitmap
from the returnedbyte[]
. If it was successful, it's really an image. Otherwise, it will throw an exception somewhere in the process.By the way, you can issue a
HEAD
request and check theContent-Type
header in the response (if it's there). However, this method is not fool-proof. The server can respond with an invalidContent-Type
header.我将使用 HttpWebRequest 获取标头,然后检查内容类型以及内容长度是否非零。
I would use HttpWebRequest to get the headers, then check the content type, and that the content length is non-zero.
这是我现在正在使用的。有什么批评吗?
Here's what I'm using now. Any critiques?