判断远程文件是否存在

目标效果:

项目中显示视频列表时,如果缩略图不存在,则加载一个默认图片。而不是一个很丑的小红叉。其中缩略图图片是存在另外一个独立的视频服务器上的,所以我们不能用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;
    }

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值