• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敬YES
Now Or Never
博客园    首页       联系   管理    订阅  订阅
判断远程文件是否存在

目标效果:

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

 

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

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

作者:陈敬(公众号:敬YES)
出处:http://www.cnblogs.com/janes/
博客文章仅供交流学习,请勿用于商业用途。如需转载,请务必注明出处。

posted on 2010-12-14 15:27  敬YES  阅读(3907)  评论(4)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3