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

时间:2012-08-03 05:20:07

标签: asp.net-mvc image httprequest

我们已将图像上传到CDN,并从那里请求图像。我的问题是,我需要编写一个图像处理程序来检查所请求的图像是否可用于CDN,并且请求因未找到图像或其他一些错误(如CDN向下)而失败,我必须将该图像请求重定向到本地图像地点。我怎么能这样做?

例如,如果是图像请求,

“http://cdn.images.net/content/images/image1.png”此请求失败,然后我应该将该请求重定向到“http://www.example.com/content/images/images1。 PNG”。

我如何使用图像处理程序来处理它?<​​/ p>

此致 KARTHIK

1 个答案:

答案 0 :(得分: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类型是否为 image / png 也可能很有用。