.NET常用工具类(Utils.cs)

         /**/ /// <summary>
        
/// 删除字符串尾部的回车/换行/空格
        
/// </summary>
        
/// <param name="str"></param>
        
/// <returns></returns>

         public   static   string  RTrim( string  str)
        
{
            
for (int i = str.Length; i >= 0; i--)
            
{
                
if (str[i].Equals(" "|| str[i].Equals("\r"|| str[i].Equals("\n"))
                
{
                    str.Remove(i, 
1);
                }

            }

            
return str;
        }

         /**/ /// <summary>
        
/// 返回文件是否存在
        
/// </summary>
        
/// <param name="filename">文件名</param>
        
/// <returns>是否存在</returns>

         public   static   bool  FileExists( string  filename)
        
{
            
return System.IO.File.Exists(filename);
        }

         /**/ /// <summary>
        
/// 以指定的ContentType输出指定文件文件
        
/// </summary>
        
/// <param name="filepath">文件路径</param>
        
/// <param name="filename">输出的文件名</param>
        
/// <param name="filetype">将文件输出时设置的ContentType</param>

         public   static   void  ResponseFile( string  filepath,  string   filename,  string  filetype)
        
{
            Stream iStream 
= null;

            
// 缓冲区为10k
            byte[] buffer = new Byte[10000];

            
// 文件长度
            int length;

            
// 需要读的数据长度
            long dataToRead;

            
try
            
{
                
// 打开文件
                iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);


                
// 需要读的数据长度
                dataToRead = iStream.Length;

                HttpContext.Current.Response.ContentType 
= filetype;
                HttpContext.Current.Response.AddHeader(
"Content-Disposition""attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+"" "));

                
while (dataToRead > 0)
                
{
                    
// 检查客户端是否还处于连接状态
                    if (HttpContext.Current.Response.IsClientConnected)
                    
{
                        length 
= iStream.Read(buffer, 010000);
                        HttpContext.Current.Response.OutputStream.Write(buffer, 
0, length);
                        HttpContext.Current.Response.Flush();
                        buffer 
= new Byte[10000];
                        dataToRead 
= dataToRead - length;
                    }

                    
else
                    
{
                        
// 如果不再连接则跳出死循环
                        dataToRead = -1;
                    }

                }

            }

            
catch (Exception ex)
            
{
                HttpContext.Current.Response.Write(
"Error : " + ex.Message);
            }

            
finally
            
{
                
if (iStream != null)
                
{
                    
// 关闭文件
                    iStream.Close();
                }

            }

            HttpContext.Current.Response.End();
        }

         /**/ /// <summary>
        
/// 判断文件名是否为浏览器可以直接显示的图片文件名
        
/// </summary>
        
/// <param name="filename">文件名</param>
        
/// <returns>是否可以直接显示</returns>

         public   static   bool  IsImgFilename( string  filename)
        
{
            filename 
= filename.Trim();
            
if (filename.EndsWith("."|| filename.IndexOf("."== -1)
            
{
                
return false;
            }

            
string extname = filename.Substring(filename.LastIndexOf("."+ 1).ToLower();
            
return (extname == "jpg" || extname == "jpeg" || extname == "png" || extname == "bmp" || extname == "gif");
        }

         /**/ /// <summary>
        
/// MD5函数
        
/// </summary>
        
/// <param name="str">原始字符串</param>
        
/// <returns>MD5结果</returns>

         public   static   string  MD5( string  str)
        
{
            
byte[] b = Encoding.Default.GetBytes(str);
            b 
= new MD5CryptoServiceProvider().ComputeHash(b);
            
string ret = "";
            
for(int i = 0; i < b.Length; i++)
                ret 
+= b[i].ToString("x").PadLeft(2,'0');
            
return ret;
        }

         /**/ /// <summary>
        
/// SHA256函数
        
/// </summary>
        
/// /// <param name="str">原始字符串</param>
        
/// <returns>SHA256结果</returns>

         public   static   string  SHA256( string  str)
        
{
            
byte[] SHA256Data = Encoding.UTF8.GetBytes(str);
            SHA256Managed Sha256 
= new SHA256Managed();
            
byte[] Result = Sha256.ComputeHash(SHA256Data);
            
return Convert.ToBase64String(Result);  //返回长度为44字节的字符串
        }

         /**/ /// <summary>
        
/// 检测是否符合email格式
        
/// </summary>
        
/// <param name="strEmail">要判断的email字符串</param>
        
/// <returns>判断结果</returns>

         public   static   bool  IsValidEmail( string  strEmail)
        
{
            
return Regex.IsMatch(strEmail, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
        }


        
public   static   bool  IsValidDoEmail( string  strEmail)
        
{
            
return Regex.IsMatch(strEmail, @"^@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
        }

         /**/ /// <summary>
        
/// 检测是否是正确的Url
        
/// </summary>
        
/// <param name="strUrl">要验证的Url</param>
        
/// <returns>判断结果</returns>

         public   static   bool  IsURL( string  strUrl)
        
{
            
return Regex.IsMatch(strUrl, @"^(http|https)\://([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&%\$\-]+)*@)*((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|localhost|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{1,10}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*$");
        }


        
public   static   string  GetEmailHostName( string  strEmail)
        
{
            
if (strEmail.IndexOf("@"< 0)
            
{
                
return "";
            }

            
return strEmail.Substring(strEmail.LastIndexOf("@")).ToLower();
        }

         /**/ /// <summary>
        
/// 检测是否有Sql危险字符
        
/// </summary>
        
/// <param name="str">要判断字符串</param>
        
/// <returns>判断结果</returns>

         public   static   bool  IsSafeSqlString( string  str)
        
{

            
return !Regex.IsMatch(str, @"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']"); 
        }

         /**/ /// <summary>
        
/// 替换回车换行符为html换行符
        
/// </summary>

         public   static   string  StrFormat( string  str)
        
{
            
string str2;

            
if (str == null)
            
{
                str2 
= "";
            }

            
else
            
{
                str 
= str.Replace("\r\n""<br />");
                str 
= str.Replace("\n""<br />");
                str2 
= str;
            }

            
return str2;
        }


         /**/ /// <summary>
        
/// 转换为简体中文
        
/// </summary>

         public   static   string  ToSChinese( string  str)
        
{
            
return Strings.StrConv(str, VbStrConv.SimplifiedChinese, 0) ;
        }


        
/**/ /// <summary>
        
/// 转换为繁体中文
        
/// </summary>

         public   static   string  ToTChinese( string  str)
        
{
            
return Strings.StrConv(str, VbStrConv.TraditionalChinese, 0);
        }


         /**/ /// <summary>
        
/// 返回 HTML 字符串的编码结果
        
/// </summary>
        
/// <param name="str">字符串</param>
        
/// <returns>编码结果</returns>

         public   static   string  HtmlEncode( string  str)
        
{
            
return HttpUtility.HtmlEncode(str);
        }


        
/**/ /// <summary>
        
/// 返回 HTML 字符串的解码结果
        
/// </summary>
        
/// <param name="str">字符串</param>
        
/// <returns>解码结果</returns>

         public   static   string  HtmlDecode( string  str)
        
{
            
return HttpUtility.HtmlDecode(str);
        }


        
/**/ /// <summary>
        
/// 返回 URL 字符串的编码结果
        
/// </summary>
        
/// <param name="str">字符串</param>
        
/// <returns>编码结果</returns>

         public   static   string  UrlEncode( string  str)
        
{
            
return HttpUtility.UrlEncode(str);
        }


        
/**/ /// <summary>
        
/// 返回 URL 字符串的编码结果
        
/// </summary>
        
/// <param name="str">字符串</param>
        
/// <returns>解码结果</returns>

         public   static   string  UrlDecode( string  str)
        
{
            
return HttpUtility.UrlDecode(str);
        }

         /**/ /// <summary>
        
/// 写cookie值
        
/// </summary>
        
/// <param name="strName">名称</param>
        
/// <param name="strValue"></param>
        
/// <param name="strValue">过期时间(分钟)</param>

         public   static   void  WriteCookie( string  strName,  string  strValue,  int  expires)
        
{
            HttpCookie cookie 
= HttpContext.Current.Request.Cookies[strName];
            
if (cookie == null)
            
{
                cookie 
= new HttpCookie(strName);
            }

            cookie.Value 
= strValue;
            cookie.Expires 
= DateTime.Now.AddMinutes(expires);
            HttpContext.Current.Response.AppendCookie(cookie);

        }


        
/**/ /// <summary>
        
/// 读cookie值
        
/// </summary>
        
/// <param name="strName">名称</param>
        
/// <returns>cookie值</returns>

         public   static   string  GetCookie( string  strName)
        
{
            
if (HttpContext.Current.Request.Cookies != null && HttpContext.Current.Request.Cookies[strName] != null)
            
{
                
return HttpContext.Current.Request.Cookies[strName].Value.ToString();
            }


            
return "";
        }


         /**/ /// <summary>
        
/// 过滤HTML中的不安全标签
        
/// </summary>
        
/// <param name="content"></param>
        
/// <returns></returns>

         public   static   string  RemoveUnsafeHtml( string  content)
        
{
            content 
= Regex.Replace(content, @"(\<|\s+)o([a-z]+\s?=)""$1$2", RegexOptions.IgnoreCase);
            content 
= Regex.Replace(content, @"(script|frame|form|meta|behavior|style)([\s|:|>])+""$1.$2", RegexOptions.IgnoreCase);
            
return content;
        }

转载于:https://www.cnblogs.com/LiJun027/archive/2007/12/28/1018978.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值