如何检查给定网址中是不是存在图像?
Posted
技术标签:
【中文标题】如何检查给定网址中是不是存在图像?【英文标题】:How to check if image exists in given url or not?如何检查给定网址中是否存在图像? 【发布时间】:2018-09-17 04:32:30 【问题描述】:这是云端链接。
http://res.cloudinary.com/dm1hql92i/raw/upload/c_fill,h_200,w_200/%7B%7D
我想用 ruby 检查该图像是否存在于该链接中。
【问题讨论】:
请阅读How do I ask a good question? 并编辑您的问题以包含更多信息。到目前为止,您尝试了什么,遇到了什么错误,在哪里卡住了? 【参考方案1】:您将通过检查Content-Type
中的HTTP header
来了解这一点
请参考以下代码sn-p。
require 'net/http'
require 'uri'
def image_exists?(url)
url = URI.parse(url)
http = Net::HTTP.start(url.host, url.port)
http.head(url.request_uri)['Content-Type'].start_with? 'image'
end
url = "http://res.cloudinary.com/dm1hql92i/raw/upload/c_fill,h_200,w_200/%7B%7D"
image_exists?(url)
=> true
url = "http://guides.rubyonrails.org/getting_started.html"
image_exists?(url)
=> false
【讨论】:
【参考方案2】:由于某种原因,Ganesh 的回答对我不起作用,这是我的方法:
def image_exists?(url)
response =
uri = URI(url)
Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri
response = http.request request # Net::HTTPResponse object
end
return response.content_type.starts_with?("image")
end
【讨论】:
以上是关于如何检查给定网址中是不是存在图像?的主要内容,如果未能解决你的问题,请参考以下文章