【问题标题】: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? 并编辑您的问题以包含更多信息。到目前为止,您尝试了什么,遇到了什么错误,在哪里卡住了?

标签: ruby-on-rails ruby cloudinary


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2021-06-20
      • 2011-03-20
      • 2014-07-10
      • 2011-11-20
      • 1970-01-01
      • 2017-04-12
      • 2011-11-11
      • 1970-01-01
      相关资源
      最近更新 更多