判断远程文件是否存在

本文介绍了一种在ASP.NET项目中使用Repeater控件显示视频列表时,如何检查远程服务器上的缩略图是否存在,并在不存在时加载默认图片的方法。

目标效果:

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

 

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

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



    本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/archive/2010/12/14/1905625.html,如需转载请自行联系原作者


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值