判断远程文件是否存在

简介:

目标效果:

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


相关文章
|
C语言 C++
C语言之分支与循环【附6个练习】(一)
C语言之分支与循环【附6个练习】(一)
|
Kotlin
Kotlin中的逻辑运算符
Kotlin中的逻辑运算符
346 3
|
人工智能 自然语言处理 vr&ar
ControlNet作者重磅新作LayerDiffusion,AI绘画能分图层了
【2月更文挑战第13天】ControlNet作者重磅新作LayerDiffusion,AI绘画能分图层了
286 2
ControlNet作者重磅新作LayerDiffusion,AI绘画能分图层了
|
XML Java Android开发
Android实时显示时间日期(极简)
Android实时显示时间日期(极简)
312 0
|
Perl
解决sed替换文本,里面含有“/“、“#”等特殊字符的问题
解决sed替换文本,里面含有“/“、“#”等特殊字符的问题
1446 0
|
消息中间件 Java API
【JavaEE进阶】 关于⽇志框架(SLF4J)
【JavaEE进阶】 关于⽇志框架(SLF4J)
|
算法 大数据 量子技术
国科大推出可编程硅基光量子计算芯片,实现292个图像的量子漫步模拟,研究登上Science
国科大推出可编程硅基光量子计算芯片,实现292个图像的量子漫步模拟,研究登上Science
390 0
|
分布式计算 运维 DataWorks
MaxCompute安全管理指南-基础篇
背景及目的 方便和辅助MaxCompute的project owner或安全管理员进行project的日常安全运维,保障数据安全。 MaxCompute有安全模型,DataWorks也有安全模型,当通过DataWorks使用MaxCompute,而DataWorks的安全模型不满足业务安全需求时,合理的将两个安全模型结合使用就尤其重要。
4478 0