zoukankan      html  css  js  c++  java
  • 判断远程文件是否存在

    目标效果:

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

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

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

  • 相关阅读:
    JS判断鼠标从什么方向进入一个容器
    jQuery最核心的基础设施之一——数据缓存模块进化史
    判定模块加载时是否存在循环依赖
    mass Framework fx模块 v4
    一个简单的加载系统
    MVC历史演化
    Mozilla Firefox 17 正式发布
    javascript 堆栈与列队
    被迫才是进步的原动力(转)
    jquery1.83 之前所有与异步列队相关的模块的演变回顾
  • 原文地址:https://www.cnblogs.com/janes/p/1905625.html
Copyright © 2011-2022 走看看