ASP.NET MVC中用于图像请求的图像处理程序失败



我们已经将图像上传到CDN,并从那里请求图像。我的问题是,我需要编写一个图像处理程序来检查请求的图像是否在CDN中可用,但由于找不到图像或CDN宕机等其他错误,请求失败,我必须将该图像请求重定向到本地图像位置。我该怎么做?

例如,如果请求图像,

"http://cdn.images.net/content/images/image1.png"此请求失败,那么我应该将该请求重定向到"http://www.example.com/content/images/images1.png".

如何使用图像处理程序处理此问题?

谨致问候,Karthik

您可以为此目的使用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类型是否为image/png也可能很有用。

最新更新