2012-08-03 30 views
2

我们已经将我们的图像上传到CDN,并从那里请求图像。我的问题是,我需要编写一个图像处理程序,检查所请求的图像是否可用在CDN中,并且请求失败,因为找不到图像或像CDN一样的其他错误,我必须将该图像请求重定向到本地图像位置。我怎样才能做到这一点?图像请求的图像处理程序在ASP .NET MVC中失败

例如,如果图像的请求,

“http://cdn.images.net/content/images/image1.png”该请求失败,则我应该重定向请求的“http: //www.example.com/content/images/images1.png”。

我该如何处理这个使用图像处理程序?

问候, KARTHIK

回答

0

可以使用用于此目的的HTTP HEAD请求。通过这样做,您只会获得HTTP标头作为响应。下面是一个简单的例子:

public bool ImageExists(string imageUri) 
{ 
    HttpWebRequest request = (HttpWebRequest) WebRequest.Create(imageUri); 
    request.Method = "HEAD"; 

    try 
    { 
     HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

     if (response.StatusCode == HttpStatusCode.OK) 
      return true; 
     else 
      return false; 
    } 
    catch 
    { 
     return false; 
    } 
} 

...这里是它如何被称为:

if (ImageExists(firstUri) 
{ 
    // Download from http://cdn.images.net... 
} 
else 
{ 
    // Download from http://www.example.com... 
} 

也有可能是检查有用的,如果MIME类型的响应是图像/ PNG,这取决于您的请求在远程服务器上的处理方式。