From: Ben Giddings Date: 2007-10-16T07:12:31+09:00 Subject: Re: Does Image URL exist? On Monday 15 October 2007, Tj Superfly wrote: > Hello everyone, I've been trying to find a code that will let me see if > an image URL that I enter exists, but am having trouble. > > Basically I just need something that will tell me yes or no if the image > URL exists or not (meaning the Image is uploaded on the server). If you don't care whether it's an image not, this is relatively easy, all you need to do is ask the server if the path exists (response code 200) or if the path doesn't (response code 404). You don't need to even download any of the content of the file. If you care whether the path exists *and* it's an image, you'll need to check its mime type. If you're pretty sure the server is doing the right thing you can do this with a a HTTP head and not transfer the contents. If you really want to make sure it's an image you'll have to download it and verify the file. I think checking with an HTTP head that the content-type is an image content type should be enough, so something like this should do: require 'uri' require 'net/http' url = URI.parse("http://example.com/images/yer_img_here.foo") Net::HTTP.start(url.host, url.port) do |http| response = http.head(url.path) case response when Net::HTTPSuccess, Net::HTTPRedirection case response.content_type when "image/png", "image/gif", "image/jpeg" puts "ok" else puts "nope" end else puts "nope" end end Ben