判断远程文件是否存在

简介:

目标效果:

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


相关文章
|
4月前
|
数据可视化
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
在使用SVN的过程中,通过哪些执行查看某个文件的修改信息
306 0
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
文件复制到ftp服务器时发生错误,请检查是否有权限将文件放到该服务器上
4853 0
解决删除文件时出现“该项目不在XX中,请确认该项目的位置然后重试”的提示
近期在删除文件夹的时候,出现了这个“该项目不在XX中,请确认该项目的位置然后重试”的提示,实际上这个文件(夹)就在那里,死活都删不掉,win10系统重启之后删除都不行的
8194 0
|
3月前
|
PHP
远程代码与命令执行
远程代码与命令执行
12 0
|
安全 PHP 数据库
WordPress安全漏洞:从任意文件删除到任意代码执行
  WordPress安全漏洞:从任意文件删除到任意代码执行   WordPress是网络上最受欢迎的CMS系统。据w3tech统计,约有30%的网站运行了该系统。该系统的应用是如此广泛,难免会成为网络犯罪分子攻击目标。
601 0
|
安全 PHP 数据安全/隐私保护
PHPMailer命令执行及任意文件读取漏洞
  今天在thinkphp官网闲逛,无意下载了一套eduaskcms,查看了一下libs目录中居然存在PHPMailer-5.2.13,想起了之前看到的PHPMailer的漏洞,可惜这套CMS只提供了一个邮箱接口,前台页面需要单独自己写,没办法用这套CMS进行复现,这边也顺便利用这个PHPMailer-5.2.13对CVE-2016-10033和CVE-2017-5223进行本地复现,记录一下。
2654 0