判断远程文件是否存在

目标效果:

项目中显示视频列表时,如果缩略图不存在,则加载一个默认图片。而不是一个很丑的小红叉。其中缩略图图片是存在另外一个独立的视频服务器上的,所以我们不能用File.Exist()方法直接判断,需要另辟蹊径。

实现步骤:
前台采用   asp:Repeater 控件,添加事件onitemdatabound="rptTraining_ItemDataBound"。

   protected void rptTraining_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Image img 
= (Image)e.Item.FindControl("img");
        
        
if (!RemoteFileExists (img.ImageUrl ))
        {
            img.ImageUrl 
= "images/memo.jpg";//如果图片不存在,则加载默认图片
        }
    }

加载每一条记录的时候都检测一下远程服务器上是否存在图片,RemoteFileExists方法如下。
   

/// <summary>
    
///  判断远程文件是否存在
    
/// </summary>
    
/// <param name="fileUrl">文件URL</param>
    
/// <returns>存在-true,不存在-false</returns>
    private bool RemoteFileExists(string fileUrl)
    {
        
bool result = false;//下载结果

        WebResponse response 
= null;
        
try
        {
            WebRequest req 
= WebRequest.Create(fileUrl);

            response 
= req.GetResponse();

            result 
= response == null ? false : true;

        }
        
catch (Exception ex)
        {
            result 
= false;
        }
        
finally
        {
            
if (response != null)
            {
                response.Close();
            }
        }

        
return result;
    }

至此,实现了想要的效果。

知识虽小,重在点滴。积跬步方以至千里。

原文地址:https://www.cnblogs.com/janes/p/1905625.html