Newbie - Test For JPEG Image Over HTTP

Hi

I would like to test for the existence of a .jpg image on a remote
server over HTTP.

I have tried 2 different methods but they are not what I need.

Method 1:

require ‘open-uri’
if open(‘http://example.net/path/to/image.jpg’)

do something

end

Method 2:

require ‘net/http’
if Net::HTTP.get ‘example.net’, ‘/path/to/image.jpg’

do something

end

The server where the images are always returns a default page if the
images do not exist so the code above always returns.

What I need is a way to check what is returned is not a html page but is
a .jpg image.

Any help greatly appeciated.
Thanks
Neil

Neil Charlton wrote:

if open(‘http://example.net/path/to/image.jpg’)
The server where the images are always returns a default page if the
images do not exist so the code above always returns.

What I need is a way to check what is returned is not a html page but is
a .jpg image.

Oh. Try this:

require ‘net/http’

def url_is_a_jpg(url)
u = URI.parse(url)
h = Net::HTTP.new(u.host, u.port)
r = h.head(u.path)
return r.content_type == ‘image/jpeg’
end

Alex Y. wrote:

Neil Charlton wrote:

if open(‘http://example.net/path/to/image.jpg’)
The server where the images are always returns a default page if the
images do not exist so the code above always returns.

What I need is a way to check what is returned is not a html page but is
a .jpg image.

Oh. Try this:

require ‘net/http’

def url_is_a_jpg(url)
u = URI.parse(url)
h = Net::HTTP.new(u.host, u.port)
r = h.head(u.path)
return r.content_type == ‘image/jpeg’
end

Hi Alex

Thanks for your help. I can see what you are doing there unfortunately I
get the following error

isjpg.rb:7:in url_is_a_jpg': undefined method content_type’ for
#<Net::HTTPOK 200 readbody=true> (NoMethodError)

ruby -v is
ruby 1.8.2 (2004-12-25) [x86_64-linux]

Any ideas ?

Thanks
Neil