tags:

views:

489

answers:

4

How can I check if an Image exists at http://someurl/myimage.jpg in C#/ASP.NET It seems like there ought to be a method to check for this -- but I cannot find one.

I found this, but it doesn't really answer the question.

+1  A: 

Hi, Maybe this or this might help. I don't think there's a direct command for images, but you could try using the FileExist method.

keyboardP
+1  A: 

You could use a System.Net.WebClient.DownloadFile function to try to load the image from the URL and see if you get an error. (Most likely a 404 Not Found error)

Its about the only way to do it from a URL. The System.IO namespace and all the functions in there are intended for files on a local machine or a network, so they would be useless to you in this situation.

David Stratton
+4  A: 

This code should work:

private static bool UrlExists(string url)
{
    try
    {
     new System.Net.WebClient().DownloadData(url);
     return true;
    }
    catch (System.Net.WebException e)
    {
     if (((System.Net.HttpWebResponse)e.Response).StatusCode == System.Net.HttpStatusCode.NotFound)
      return false;
     else
      throw;
    }
}
David
+6  A: 

You could try using System.Net.WebRequest to send a 'HEAD" request to that to the url and check the response to see if the file exists - this should do the job without atually trying to download it.

Ray
If the goal is to check for existence only, this is better than System.Net.WebClient.DownloadFile. If the goal is to check for existence and then download, this is slightly worse, as it will results in two separate HTTP requests.
Franci Penov
Also, I know of at least two different public web servers that respond with 403 to a HEAD request, while still return 200 for a GET request for the same resource. Not that I condone such behavior; just something to keep in mind. :-)
Franci Penov