ASP.NET 共用类库1

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Security.Cryptography;
using System.Net;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Web.Mail;
using System.Collections;
using System.Data;using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace PubClass
{
    public class PubFunction
    {
        #region MD5加密
        public string MD5(string DataStr)
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(DataStr, "md5");
        }
        public string MD5_16(string DataStr)
        {
            string md5str = this.MD5(DataStr);
            return md5str.Substring(8, 16);
        }
        #endregion

        #region 随机字串
        /// <summary>
        /// 生成指定长度的随机字串
        /// </summary>
        /// <param name="len">长度</param>
        /// <returns>随机字串</returns>
        public string GetRandomizedString(int len)
        {
            return this.GetRandomizedString(len, "all");
        }
        /// <summary>
        /// 生成指定长度的随机字串
        /// </summary>
        /// <param name="len">长度</param>
        /// <param name="codes">字串取值范围</param>
        /// <returns>随机字串</returns>
        public string GetRandomizedString(int len, string codes)
        {
            string series;
            switch (codes)
            {
                case "number":
                    series = "01234567890123456789";
                    break;
                case "lower":
                    series = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
                    break;
                case "upper":
                    series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
                    break;
                case "alpha":
                    series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
                    break;
                default:
                    series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
                    break;
            }
            if (len < 1) return "";
            int olen = series.Length;
            StringBuilder sb = new StringBuilder();
            Random rnd = new Random();
            for (int i = 0; i < len; i++)
            {
                sb.Append(series.Substring(rnd.Next(0, olen - 1), 1));
            }
            return sb.ToString();
        }
        #endregion

        #region 删除特定字符
        /// <summary>
        /// 清除字符串的非数字、字母(含下划线)和汉字字符
        /// </summary>
        /// <param name="txt">传入参数</param>
        /// <returns>结果字串</returns>
        public string delNonePassportAllowChar(string txt)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[\x00-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\xFF]");
            return reg.Replace(txt, "");
        }
        public bool hasIllegalPassportChar(string txt)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[\x00-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\xFF]{1,}");
            return reg.IsMatch(txt);
        }
        public string onlyAlphaAndDigit(string txt)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]");
            return reg.Replace(txt, "");
        }
        public bool hasNoneAlphaAndDigit(string txt)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]{1,}");
            return reg.IsMatch(txt);
        }
        #endregion

        #region 返回文件扩展名
        /// <summary>
        /// 返回文件扩展名
        /// </summary>
        /// <param name="filename">文件名</param>
        /// <returns>小写扩展名</returns>
        public string getFileExt(string filename)
        {
            int lidx = filename.LastIndexOf(".");
            if (lidx == filename.Length - 1) return "";
            string ext = "";
            if (lidx > -1)
            {
                ext = filename.Substring(lidx + 1).ToLower();
            }
            return ext;
        }
        #endregion

        #region 截字处理(按字节算)
        /// <summary>
        /// 截字处理(按字节算)
        /// </summary>
        /// <param name="str">原始字串</param>
        /// <param name="len">字节长度</param>
        /// <returns>结果字串</returns>
        public string SubStringByByte(string str, int len)
        {
            char[] cc = str.ToCharArray();
            int i = 0, j = 0, code;
            for (i = 0, j = 0; i < cc.Length && j < len; i++)
            {
                code = (int)cc[i];
                if (code >= 0 && code <= 255)
                {
                    j++;
                }
                else
                {
                    j += 2;
                }
            }
            if (i > 0)
            {
                return str.Substring(0, i);
            }
            else
            {
                return "";

            }
        }
        public string SubStringByByte(string str, int len, bool ismore)
        {
            char[] cc = str.ToCharArray();
            int i = 0, j = 0, code;
            for (i = 0, j = 0; i < cc.Length && j < len; i++)
            {
                code = (int)cc[i];
                if (code >= 0 && code <= 255)
                {
                    j++;
                }
                else
                {
                    j += 2;
                }
            }
            if (i > 0)
            {
                if (!IsBlank(str))
                {
                    if (CalcByteLength(str) > len)
                    {
                        return str.Substring(0, i) + "..";
                    }
                    else
                    {
                        return str.Substring(0, i);
                    }
                }
                else
                {
                    return str.Substring(0, i);

                }
            }
            else
            {
                return "";
            }
        }

        /// <summary>
        /// 返回字节长度
        /// </summary>
        /// <param name="str">计算字串</param>
        /// <returns>长度</returns>
        public int CalcByteLength(string str)
        {
            char[] cc = str.ToCharArray();
            int i = 0, j = 0, code;
            for (i = 0, j = 0; i < cc.Length; i++)
            {
                code = (int)cc[i];
                if (code >= 0 && code <= 255)
                {
                    j++;
                }
                else
                {
                    j += 2;
                }
            }
            return j;
        }
        #endregion

        #region 检测字串是否是电子邮件地址格式
        /// <summary>
        /// 检测字串是否是电子邮件地址格式
        /// </summary>
        /// <param name="email">需要检测的电子邮件地址字串</param>
        /// <returns>是否是电子邮件地址格式</returns>
        public bool IsEmail(string email)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
            return reg.IsMatch(email);
        }
        #endregion

        #region 正则匹配检测

        /// <summary>
        /// 正则匹配检测
        /// </summary>
        /// <param name="txt">需要检测的字串</param>
        /// <param name="reg">正则表达式</param>
        /// <returns>结果</returns>
        public bool RegIsMatch(string txt, string reg)
        {
            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(reg);
            return regex.IsMatch(txt);
        }

        #endregion

        #region 获取字符串字节数
        public int GetStringByteLength(string str)
        {
            char[] cc = str.ToCharArray();
            int i = 0, j = 0, code;
            for (i = 0, j = 0; i < cc.Length; i++)
            {
                code = (int)cc[i];
                if (code >= 0 && code <= 255)
                {
                    j++;
                }
                else
                {
                    j += 2;
                }
            }
            return j;
        }
        #endregion

        #region 生成以日期时间为基础的不重复数字字串
        private Random rnd = new Random();
        /// <summary>
        /// 生成以日期时间为基础的不重复数字字串
        /// </summary>
        /// <returns>字串</returns>
        public string getIdenticalStringBaseDateTime()
        {
            return DateTime.Now.ToString("yyMMddHHmm") + rnd.Next(1000, 9999).ToString();
        }
        /// <summary>
        /// 生成以日期时间为基础的不重复数字字串
        /// </summary>
        /// <returns>字串</returns>
        public string getIdenticalStringBaseDateTime2()
        {
            return DateTime.Now.ToString("yyMMddHHmmss") + rnd.Next(10000, 99999).ToString();
        }
        #endregion

        #region 生成以日期时间为基的SHA1加密字串
        /// <summary>
        /// 生成以日期时间为基的SHA1加密字串
        /// </summary>
        /// <returns>40位的加密字串</returns>
        public string GetSHA1StringBasedDateTime()
        {
            string source = DateTime.Now.ToString("yyyyMMddHHss") + rnd.Next(10000, 99999).ToString();
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(source, "sha1");
        }
        #endregion

        #region 表单处理
        /// <summary>
        /// 表单处理
        /// </summary>
        /// <param name="str">处理字串</param>
        /// <returns>结果字串</returns>
        public string TextareaStringToDatabase(string str)
        {
            StringBuilder sb = new StringBuilder(System.Web.HttpUtility.HtmlEncode(str));
            sb = sb.Replace(" ","&nbsp;");
            sb = sb.Replace("\n", "<br />");
            return sb.ToString();
        }
        public string DatabaseStringToTextarea(string str)
        {
            StringBuilder sb = new StringBuilder(System.Web.HttpUtility.HtmlDecode(str));
            sb = sb.Replace("&nbsp;", " ");
            sb = sb.Replace("<br />", "\n");
            return sb.ToString();
        }
        #endregion

        #region 检测MIME字串是否是图片性质
        /// <summary>
        /// 检测MIME字串是否是图片性质
        /// </summary>
        /// <param name="mime"></param>
        /// <returns></returns>
        public bool testMimeIsImage(string mime)
        {
            if (mime.Length < 7) return false;
            string begin = mime.Substring(0, 6).ToLower();
            return begin == "image/";
        }
        #endregion

        #region 检测MIME字串是否是音频性质
        /// <summary>
        /// 检测MIME字串是否是音频性质
        /// </summary>
        /// <param name="mime"></param>
        /// <returns></returns>
        public bool testMimeIsAudio(string mime)
        {
            if (mime.Length < 7) return false;
            string begin = mime.Substring(0, 6).ToLower();
            return begin == "audio/";
        }
        #endregion

        #region 检测MIME字串是否是视频性质
        /// <summary>
        /// 检测MIME字串是否是礼频性质
        /// </summary>
        /// <param name="mime"></param>
        /// <returns></returns>
        public bool testMimeIsVideo(string mime)
        {
            if (mime.Length < 7) return false;
            string begin = mime.Substring(0, 6).ToLower();
            return begin == "video/";
        }
        #endregion

        #region 检测是否是支持的文件扩展名
        /// <summary>
        /// 检测是否是支持的文件扩展名
        /// </summary>
        /// <param name="ext">扩展名,如果是空字串,则默认都是不能通过检测</param>
        /// <param name="extcoll">扩展句列表,用|分隔,如果是空字串,则默认都是通过检测</param>
        /// <returns>结果</returns>
        public bool testIsSupportFileExtent(string ext, string extcoll)
        {
            if (ext == "") return false;
            if (extcoll == "") return true;
            ext = ext.Trim().ToLower();
            char[] sep = { ‘,‘ };
            string[] extarr = extcoll.Split(sep);
            for (int i = 0; i < extarr.Length; i++)
            {
                if (extarr[i].Trim().ToLower() == ext) return true;
            }
            return false;
        }
        #endregion

        #region 文字水印
        /// <summary>
        ///
        /// </summary>
        /// <param name="page"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public bool MakeWaterImageWord(System.Web.UI.Page page, string path, string newpath)
        {
            //加文字水印,
            System.Drawing.Image image = System.Drawing.Image.FromFile(path);
            //System.Drawing.Image image=System.Drawing.Image.FromStream();
            Graphics g = Graphics.FromImage(image);
            g.DrawImage(image, 0, 0, image.Width, image.Height);
            Font f = new Font("Verdana", 16);
            Brush b = new SolidBrush(Color.BurlyWood);
            string addText = "熊猫伯伯\nhttp://www.pandabobo.cn";
            try
            {
                g.DrawString(addText, f, b, 10, 10);
                g.Dispose();
                //保存加水印过后的图片,删除原始图片
                string newPath = newpath;
                image.Save(newPath);
                image.Dispose();
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
                return true;
            }
            catch
            {
                return false;
            }

        }
        public bool MakeWaterImageWord(System.Web.UI.Page page, string path, string newpath, System.IO.Stream stream)
        {
            //加文字水印,
            //System.Drawing.Image image = System.Drawing.Image.FromFile(path);
            System.Drawing.Image image = System.Drawing.Image.FromStream(stream);
            Graphics g = Graphics.FromImage(image);
            g.DrawImage(image, 0, 0, image.Width, image.Height);
            Font f = new Font("Verdana", 16);
            Brush b = new SolidBrush(Color.BurlyWood);
            string addText = "熊猫伯伯\nhttp://www.pandabobo.cn";
            try
            {
                g.DrawString(addText, f, b, 10, 10);
                g.Dispose();
                //保存加水印过后的图片,删除原始图片
                string newPath = newpath;
                image.Save(newPath);
                image.Dispose();
                if (File.Exists(path))
                {
                    File.Delete(path);
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        #endregion

        #region 图片水印
        /// <summary>
        /// 水印
        /// </summary>
        /// <param name="page"></param>
        /// <param name="path">图片地址</param>
        /// <returns></returns>
        public bool MakeWaterImageTwo(string copyImgPath, string path)
        {
            //加图片水印
            System.Drawing.Image image = System.Drawing.Image.FromFile(path);
            System.Drawing.Image copyImage = System.Drawing.Image.FromFile(copyImgPath);

            //源图
            int sWidth = image.Width;
            int sHeight = image.Height;
            //水印图
            int wWidth = (((copyImage.Width) * (sWidth / copyImage.Width)) * 1) / 3;
            int wHeight = (((copyImage.Height) * (sWidth / copyImage.Width)) * 1) / 3;
            if (sHeight < (sWidth * 0.382))
            {
                wWidth = (((copyImage.Width) * (sHeight / copyImage.Height)) * 1) / 3;
                wHeight = (((copyImage.Height) * (sHeight / copyImage.Height)) * 1) / 3;
            }

            //make Graphics.
            //Graphics g = Graphics.FromImage(image);

            //新建一个bmp图片
            System.Drawing.Image BMP = new System.Drawing.Bitmap(sWidth, sHeight);

            //新建一个画板
            Graphics G = System.Drawing.Graphics.FromImage(BMP);

            //设置高质量插值法
            G.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充
            G.Clear(Color.Transparent);

            //加载原始图片
            G.DrawImage(image, new Rectangle(0, 0, sWidth, sHeight));

            //水印属性
            float[][] matrixItems ={
                                       new float[] {1, 0, 0, 0, 0},
                                       new float[] {0, 1, 0, 0, 0},
                                       new float[] {0, 0, 1, 0, 0},
                                       new float[] {0, 0, 0, (float)100/100f, 0},
                                       new float[] {0, 0, 0, 0, 1}
                                   };
            ColorMatrix colorMatrix = new ColorMatrix(matrixItems);
            ImageAttributes MarkAttr = new ImageAttributes();
            MarkAttr.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

            try
            {
                //G.DrawImage(copyImage, new Rectangle(image.Width-copyImage.Width, image.Height-copyImage.Height,copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel,MarkAttr);
                G.DrawImage(copyImage, new Rectangle(image.Width - wWidth, image.Height - wHeight, wWidth, wHeight), 8, 10, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel, MarkAttr);
                image.Dispose();
                if (File.Exists(path))
                {
                    File.Delete(path);
                }

                BMP.Save(path);
                BMP.Dispose();

                return true;
            }
            catch
            {
                return false;
            }
        }

        #endregion

        #region 图片水印 2
        /// <summary>
        /// 生成水印,可按左上、左下、右上、右下、居中、透明度生成文件,只对jpeg或jpg格式有效!
        /// </summary>
        /// <param name="sourceFile">底图</param>
        /// <param name="waterMarkFile">水印图</param>
        /// <param name="saveFile">要保存的文件</param>
        /// <param name="local">位置:左上(1)、左下(2)、右上(3)、右下(4)、居中(5)</param>
        /// <param name="alpha">透明度(1-100)</param>
        /// <returns>bool,是否成功</returns>
        public bool MakeWaterImage(string sourceFile, string waterMarkFile, string saveFile, int local, int alpha)
        {
            bool result;

            if (!File.Exists(sourceFile) || !File.Exists(waterMarkFile)) //如果源图或水印图不存在
                return false;

            FileInfo fi = new FileInfo(sourceFile);
            //判断文件类型是否合法
            if (fi.Extension.ToLower() != ".jpg" & fi.Extension.ToLower() != ".jpeg")
                return false;

            try
            {
                //原图
                Bitmap sImage = new Bitmap(sourceFile);
                int sWidth = sImage.Width;
                int sHeight = sImage.Height;

                //水印图
                Bitmap wImage = new Bitmap(waterMarkFile);
                int wWidth = wImage.Width;
                int wHeight = wImage.Height;

                //make Graphics.
                Graphics g = Graphics.FromImage(sImage);
                int x; //临时变量
                int y; //监时变量
                int x1 = 0; //原图和水印图的宽度差,即开始绘图的X位置
                int y1 = 0; //原图和水印图的高度差,即开始绘图的Y位置
                int w = 0; //生成的水印图的宽度,即结束绘图的X位置
                int h = 0; //生成的水印图的高度,即结束绘图的Y位置
                int al; //alpha
                int rl; //Red
                int gl; //Green
                int bl; //Blue

                //校验透明度
                if (alpha < 1 || alpha > 100)
                    al = 80;
                else
                    al = alpha;
                if (sWidth > wWidth & sHeight > wHeight) //如果源图比水印图大
                {
                    switch (local)
                    {
                        case 1: //左上
                            x1 = 0;
                            y1 = 0;
                            break;
                        case 2: //左下
                            x1 = 0;
                            if ((sHeight - wHeight) > 0) //源图比水印图高
                                y1 = sHeight - wHeight;
                            else
                                y1 = sWidth;
                            break;
                        case 3: //右上
                            y1 = 0;
                            if ((sWidth - wWidth) > 0) // 源图比水印图宽
                                x1 = sWidth - wWidth;
                            else
                                x1 = sWidth;
                            break;
                        case 4: //右下
                            //计算高度
                            if ((sHeight - wHeight) > 0) //源图比水印图高
                                y1 = sHeight - wHeight;
                            else
                                y1 = sWidth;
                            //计算宽度
                            if ((sWidth - wWidth) > 0) // 源图比水印图宽
                                x1 = sWidth - wWidth;
                            else
                                x1 = sWidth;
                            break;
                        case 5: //居中
                            //计算高度
                            if ((sHeight - wHeight) > 0) //源图比水印图高
                                y1 = (sHeight - wHeight) / 2;
                            else
                                y1 = sWidth;
                            //计算宽度
                            if ((sWidth - wWidth) > 0) // 源图比水印图宽
                                x1 = (sWidth - wWidth) / 2;
                            else
                                x1 = sWidth;
                            break;
                    }
                    if ((sHeight - wHeight) > 0)
                        h = wHeight;
                    else
                        h = sHeight;
                    if ((sWidth - wWidth) > 0)
                        w = wWidth;
                    else
                        w = sWidth;
                }
                else //源图比水印图小
                {
                    x1 = 0;
                    y1 = 0;
                    w = sWidth;
                    h = sHeight;
                }

                //开始绘图
                for (x = 1; x < w; x++)
                {
                    for (y = 1; y < h; y++)
                    {
                        al = alpha;
                        rl = wImage.GetPixel(x, y).R;
                        gl = wImage.GetPixel(x, y).G;
                        bl = wImage.GetPixel(x, y).B;
                        al = 70;

                        if (rl + 25 < 255)
                            rl += 25;
                        if (gl + 25 < 255)
                            gl += 25;
                        if (bl + 25 < 255)
                            bl += 25;
                        g.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(al, rl, gl, bl))), x1 + x, y1 + y, 1, 1);
                    }
                }
                g.Save();
                sImage.Save(saveFile);
                result = true;
            }
            catch
            {
                result = false;
            }
            return result;
        }

        #endregion

        #region 图片按比例缩小到指定范围
        /// <summary>
        /// 图片按比例缩小到指定范围
        /// </summary>
        /// <param name="standard_width">标准宽度</param>
        /// <param name="standard_height">标准高度</param>
        /// <param name="input_ImgUrl">要处理图片路径</param>
        /// <param name="out_ImgUrl">处理完毕图片路径,jpg扩展名</param>
        public bool ImgLimitedSize(int standard_width, int standard_height, string input_ImgUrl, string out_ImgUrl)
        {
            int Reduce_Width = 0; // 缩小的宽度
            int Reduce_Height = 0; // 缩小的高度

            // ===通过连接创建Image对象===
            System.Drawing.Image oldimage = System.Drawing.Image.FromFile(input_ImgUrl);
            int oldWidth = oldimage.Size.Width;//原始宽度
            int oldHeight = oldimage.Size.Height;//原始高度
            System.Guid guid = oldimage.RawFormat.Guid;

            if (oldWidth < standard_width && oldHeight < standard_height)
            {
                oldimage.Dispose();
                if (input_ImgUrl != out_ImgUrl)
                {
                    System.IO.FileInfo file = new FileInfo(input_ImgUrl);
                    file.CopyTo(out_ImgUrl, true);
                }
                return true;
            }
            else
            {
                //根据目标大小调整缩小后高宽
                float aimpp = (float)standard_width / (float)standard_height;
                float oldpp = (float)oldWidth / (float)oldHeight;
                float reducepp;
                if (aimpp == oldpp)
                {
                    Reduce_Width = standard_width;
                    Reduce_Height = standard_height;
                }
                else if (aimpp > oldpp)
                {
                    reducepp = (float)standard_height / (float)oldHeight;
                    Reduce_Width = Convert.ToInt32(reducepp * oldWidth);
                    Reduce_Height = standard_height;
                }
                else
                {
                    reducepp = (float)standard_width / (float)oldWidth;
                    Reduce_Width = standard_width;
                    Reduce_Height = Convert.ToInt32(reducepp * oldHeight);
                }
            }

            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(Reduce_Width, Reduce_Height);

            //新建一个画板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充
            g.Clear(Color.Transparent);

            //按指定的高宽范围比例缩小图片
            g.DrawImage(oldimage, new Rectangle(0, 0, Reduce_Width, Reduce_Height), new Rectangle(0, 0, oldWidth, oldHeight), GraphicsUnit.Pixel);

            try
            {
                ImageFormat saveformat = oldimage.RawFormat;
                oldimage.Dispose();
                //以原始格式保存缩略图
                bitmap.Save(out_ImgUrl, saveformat);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                bitmap.Dispose();
                g.Dispose();
            }
            return true;
        }
        #endregion

        #region 缩放图片到指定大小
        /// <summary>
        /// 缩放图片到指定大小(需要裁剪)
        /// </summary>
        /// <param name="standard_width">标准宽度</param>
        /// <param name="standard_height">标准高度</param>
        /// <param name="input_ImgUrl">要处理图片路径</param>
        /// <param name="out_ImgUrl">处理完毕图片路径,jpg扩展名</param>
        /// <returns>是否成功</returns>
        public bool ImgFixedSize(int standard_width, int standard_height, string input_ImgUrl, string out_ImgUrl)
        {
            int CutX = 0;//裁剪X坐标
            int CutY = 0;//裁剪Y坐标
            int CutWidth;//裁剪宽度
            int CutHeight;//裁剪调试

            // ===通过连接创建Image对象===
            System.Drawing.Image oldimage = System.Drawing.Image.FromFile(input_ImgUrl);
            int oldWidth = oldimage.Size.Width;//图片原始宽度
            int oldHeight = oldimage.Size.Height;//图片原始高度
            System.Guid guid = oldimage.RawFormat.Guid;

            float aimpp = (float)standard_width / (float)standard_height;
            float oldpp = (float)oldWidth / (float)oldHeight;

            if (aimpp == oldpp)
            {
                CutWidth = oldWidth;
                CutHeight = oldHeight;
            }
            else if (aimpp > oldpp)
            {
                CutWidth = oldWidth;
                CutHeight = Convert.ToInt32((float)standard_height * ((float)oldWidth / (float)standard_width));
                CutX = 0;
                CutY = (oldHeight - CutHeight) / 2;
            }
            else
            {
                CutWidth = Convert.ToInt32((float)standard_width * ((float)oldHeight / (float)standard_height));
                CutHeight = oldHeight;
                CutX = (oldWidth - CutWidth) / 2;
                CutY = 0;
            }

            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(standard_width, standard_height);

            //新建一个画板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充
            g.Clear(Color.Transparent);

            //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(oldimage, new Rectangle(0, 0, standard_width, standard_height), new Rectangle(CutX, CutY, CutWidth, CutHeight), GraphicsUnit.Pixel);

            try
            {
                ImageFormat saveformat = oldimage.RawFormat;
                oldimage.Dispose();
                //以原始格式保存缩略图
                bitmap.Save(out_ImgUrl, saveformat);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                bitmap.Dispose();
                g.Dispose();
            }

            return true;

        }
        #endregion

        #region 缩放图片到指定的宽或高
        public bool ImgLimitWidthOrHeight(int standard, string input_ImgUrl, string out_ImgUrl)
        {
            return ImgLimitWidthOrHeight(standard, input_ImgUrl, out_ImgUrl, "width");
        }
        /// <summary>
        /// 缩放图片到指定的宽或高
        /// </summary>
        /// <param name="standard">标准宽度</param>
        /// <param name="input_ImgUrl">要处理图片路径</param>
        /// <param name="out_ImgUrl">处理完毕图片路径</param>
        /// <param name="WidthOrHeight">指定以长或宽为标准,width或height</param>
        /// <returns>是否成功</returns>
        public bool ImgLimitWidthOrHeight(int standard, string input_ImgUrl, string out_ImgUrl, string WidthOrHeight)
        {
            int Reduce_Width = 0; // 缩小的宽度
            int Reduce_Height = 0; // 缩小的高度

            // ===通过连接创建Image对象===
            System.Drawing.Image oldimage = System.Drawing.Image.FromFile(input_ImgUrl);
            int oldWidth = oldimage.Size.Width;//原始宽度
            int oldHeight = oldimage.Size.Height;//原始高度
            System.Guid guid = oldimage.RawFormat.Guid;

            float aimpp;

            WidthOrHeight = WidthOrHeight.ToLower().Trim();
            if (WidthOrHeight == "width")
            {
                aimpp = (float)standard / (float)oldWidth;
                Reduce_Width = standard;
                Reduce_Height = (int)((float)oldHeight * aimpp);
            }
            else
            {
                aimpp = (float)standard / (float)oldHeight;
                Reduce_Width = (int)((float)oldWidth * aimpp);
                Reduce_Height = standard;
            }

            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(Reduce_Width, Reduce_Height);

            //新建一个画板
            Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充
            g.Clear(Color.Transparent);

            //按指定的高宽范围比例缩小图片
            g.DrawImage(oldimage, new Rectangle(0, 0, Reduce_Width, Reduce_Height), new Rectangle(0, 0, oldWidth, oldHeight), GraphicsUnit.Pixel);

            try
            {
                ImageFormat saveformat = oldimage.RawFormat;
                oldimage.Dispose();
                //以原始格式保存缩略图
                bitmap.Save(out_ImgUrl, saveformat);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                bitmap.Dispose();
                g.Dispose();
            }
            return true;
        }
        #endregion

        #region 获取图片文件长宽
        /// <summary>
        /// 获取图片文件长宽
        /// </summary>
        /// <param name="filepath">图片路径</param>
        /// <returns>包含长宽数据的ArrayList</returns>
        public ArrayList getImageWidthAndHeight(string filepath)
        {
            ArrayList arr = new ArrayList(2);
            try
            {
                System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
                arr[0] = img.Width;
                arr[1] = img.Height;
                img.Dispose();
            }
            catch
            {
                arr[0] = -1;
                arr[1] = -1;
            }
            return arr;
        }
        #endregion

        #region 测试图片是否超过指定大小
        /// <summary>
        /// 测试图片是否超过指定大小
        /// </summary>
        /// <param name="filepath">图片文件地址(磁盘绝对地址)</param>
        /// <param name="width">指定宽</param>
        /// <param name="height">指定高</param>
        /// <returns>结果</returns>
        public bool testImageOverSize(string filepath, int width, int height)
        {
            ArrayList wh = this.getImageWidthAndHeight(filepath);
            int w = (int)wh[0];
            int h = (int)wh[1];
            if (w < 1 || h < 1)
            {
                return true;
            }
            else
            {
                return w > width || h > height;
            }
        }
        #endregion

        #region 创建文件夹名
        /// <summary>
        /// 功能:创建文件名
        /// 返回:文件夹名foldername
        /// 编写人:简清舟
        /// </summary>
        /// <returns></returns>
        public string CreateFolderName()
        {
            DateTime time = System.DateTime.Now;//取时间
            string foldername = time.Year.ToString() + time.Month.ToString();//创建文件夹名
            return foldername;//返回文件名
        }
        #endregion

        #region 创建文件夹
        /// <summary>
        /// 功能:创建文件夹
        /// 参数:path是文件的路径
        /// 编写人:简清舟
        /// </summary>
        /// <param name="path">文件路径</param>
        public bool CreateFolder(string path, Page page)
        {

            try
            {
                path = page.Server.MapPath(path);//
                // 检查目录是否存在
                if (Directory.Exists(path))
                {
                    //Response.Write("目录已经存在.");
                    return true;
                }

                // 创建目录
                DirectoryInfo di = Directory.CreateDirectory(path);
                //Response.Write("目录应创建成功");

                // 删除目录
                //di.Delete();
                //Console.WriteLine("目录已经删除.");
                return true;
            }
            catch
            {
                return false;
                //Response.Write("<script>alert(‘z8系统提示您:目录创建失败!‘)</script>");
            }

        }
        #endregion

        #region 删除HTML标签"<...>"
        /// <summary>
        ///  删除字串中的HTML标签
        /// </summary>
        /// <param name="txt">原始字串</param>
        /// <returns>结果字串</returns>
        public string DeleteHtmlTag(string txt)
        {
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("<[^>]{1,}>");
            return reg.Replace(txt, "");
        }
        #endregion

        #region 把数字转换为以Kb或Mb或T表示的容量
        /// <summary>
        /// 把数字转换为以Kb或Mb或T表示的容量
        /// </summary>
        /// <param name="size">数字(字节)</param>
        /// <returns>表示方法</returns>
        public string ConvertLongToVolumeString(long size)
        {
            double rtnvol = 0;
            if (size < 1024)
            {
                return size.ToString() + "Bit";
            }
            else if (size < 1048576)
            {
                rtnvol = (double)size / 1024.0;
                return rtnvol.ToString("f2") + "KB";
            }
            else if (size < 1073741824)
            {
                rtnvol = (double)size / 1048576.0;
                return rtnvol.ToString("f2") + "MB";
            }
            else if (size < 1099511627776)
            {
                rtnvol = (double)size / 1073741824.0;
                return rtnvol.ToString("f2") + "GB";
            }
            else
            {
                rtnvol = (double)size / 1099511627776.0;
                return rtnvol.ToString("f2") + "T";
            }
        }
        #endregion

        #region 输出MediaPlayer播放器代码
        /// <summary>
        /// 输出MediaPlayer播放器代码
        /// </summary>
        /// <param name="url">URL</param>
        /// <param name="auto">是否自动播放</param>
        /// <returns>代码</returns>
        public string GetMediaPlayCodes(string url, bool auto)
        {
            return this.GetMediaPlayCodes(url, auto, true);
        }

        public string GetMediaPlayCodes(string url, bool auto, bool withSkin)
        {
            StringBuilder sbframe = new StringBuilder();
            if (withSkin)
            {
                sbframe.Append("<table width=\"350\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"3\"><img src=\"player_imgs/1_13.gif\" width=\"350\" height=\"17\" /></td></tr><tr><td width=\"19\" height=\"0\"><img src=\"player_imgs/1_14.gif\" width=\"19\" height=\"210\" /></td><td style=\"width:312px;height:210px;\">{$PlayerCode}</td><td width=\"19\" align=\"right\"><img src=\"player_imgs/1_15.gif\" width=\"19\" height=\"210\" /></td></tr></table>");
                sbframe.Append("<table width=\"350\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"20\" rowspan=\"4\"><img src=\"player_imgs/1_16.gif\" width=\"20\" height=\"58\" /></td><td height=\"7\" valign=\"bottom\" bgcolor=\"#999999\"></td><td width=\"17\" rowspan=\"4\"><img src=\"player_imgs/1_17.gif\" width=\"17\" height=\"58\" /></td></tr><tr><td height=\"3\" valign=\"bottom\" bgcolor=\"#FFFFFF\"></td></tr><tr><td height=\"6\" valign=\"bottom\" bgcolor=\"#FFFFFF\"><img src=\"player_imgs/1_18.gif\" width=\"313\" height=\"7\" /></td></tr><tr><td height=\"41\" background=\"player_imgs/1_27.gif\">");
                sbframe.Append("<img src=\"player_imgs/pause.gif\" style=\"cursor:pointer;\" onclick=\"javascript:PlayerPause();\" />");
                sbframe.Append("<img src=\"player_imgs/play.gif\" style=\"cursor:pointer;\" onclick=\"javascript:PlayerPlay();\" />");
                sbframe.Append("<img src=\"player_imgs/stop.gif\" style=\"cursor:pointer;\" onclick=\"javascript:PlayerStop();\" />");
                sbframe.Append("<img src=\"player_imgs/fullscreen.gif\" style=\"cursor:pointer;\" onclick=\"javascript:PlayerFullscreen();\" />");
                sbframe.Append("</td></tr></table>");
            }
            else
            {
                sbframe.Append("{$PlayerCode}");
            }
            StringBuilder sb = new StringBuilder();
            sb.Append("\n<script>\n");
            sb.Append("document.write(\"<object id=\\\"mediaplayer\\\" name=\\\"mediaplayer\\\" classid=\\\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\\\" codebase=\\\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217\\\" type=\\\"application/x-oleobject\\\" width=\\\"100%\\\" height=\\\"100%\\\">\");\n");
            sb.Append("document.write(\"<param name=\\\"uiMode\\\" value=\\\"none\\\">\");\n");
            sb.Append("document.write(\"<param name=\\\"AutoStart\\\" value=\\\"");
            if (auto)
            {
                sb.Append("-1");
            }
            else
            {
                sb.Append("0");
            }
            sb.Append("\\\">\");\n");
            sb.Append("document.write(\"<param name=\\\"StretchToFit\\\" value=\\\"1\\\">\");\n");
            sb.Append("document.write(\"<param name=\\\"EnableContextMenu\\\" value=\\\"0\\\">\");\n");
            sb.Append("document.write(\"<param name=\\\"url\\\" value=\\\"" + url + "\\\">\");\n");
            sb.Append("if(!window.ActiveXObject)");
            sb.Append("document.write(\"<embed id=\\\"mediaplayer2\\\" name=\\\"mediaplayer_2\\\" type=\\\"application/x-mplayer2\\\" pluginspage=\\\"http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/\\\" filename=\\\"" + url + "\\\" src=\\\"" + url + "\\\" autostart=\\\"1\\\" ShowControls=1 ShowDisplay=0 ShowStatusBar=0 autosize=0 width=\\\"100%\\\" height=\\\"100%\\\" uiMode=\\\"full\\\" StretchToFit=\\\"1\\\" EnableContextMenu=\\\"1\\\"></embed>\");\n");
            sb.Append("document.write(\"</object>\");\n");
            sb.Append("var _player = document.getElementById(\"mediaplayer\");\n");
            sb.Append("var _controls = _player.controls;\n");
            sb.Append("function PlayerPlay(){if(_player.playState == 3){return;}_controls.play();}\n");
            sb.Append("function PlayerPause(){_controls.pause();}\n");
            sb.Append("function PlayerStop(){_player.autoStart=false;_player.URL = _player.URL;_controls.stop();}\n");
            sb.Append("function PlayerFullscreen(){if(_player.playState == 3){_player.fullscreen=true;}else{return;}}\n");
            sb.Append("</script>\n");
            sbframe.Replace("{$PlayerCode}", sb.ToString());
            return sbframe.ToString();
        }

        public string GetMediaPlayCodes(string url, bool auto, string mode)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("\n<object id=\"mediaplayer\" name=\"mediaplayer\" classid=\"clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6\" codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217\" type=\"application/x-oleobject\" width=\"100%\" height=\"100%\">\n");
            sb.Append("<param name=\"uiMode\" value=\"" + mode.Trim() + "\">\n");
            sb.Append("<param name=\"AutoStart\" value=\"");
            if (auto)
            {
                sb.Append("-1");
            }
            else
            {
                sb.Append("0");
            }
            sb.Append(">\n");
            sb.Append("<param name=\"StretchToFit\" value=\"1\">\n");
            sb.Append("<param name=\"EnableContextMenu\" value=\"0\">\n");
            sb.Append("<param name=\"url\" value=\"" + url + "\">\n");
            sb.Append("<embed type=\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/\" filename=\"" + url + "\" src=\"" + url + "\" Name=\"mediaplayer\" autostart=\"" + auto.ToString() + "\" ShowControls=1 ShowDisplay=0 ShowStatusBar=0 autosize=0 width=\"100%\" height=\"100%\" uiMode=\"" + mode + "\" StretchToFit=\"1\" EnableContextMenu=\"0\"></embed>\n");
            sb.Append("</object>\n");
            return sb.ToString();
        }
        #endregion

        #region 传入一字符串,返回拼音首字母
        /// <summary>
        /// 传入一字符串,返回字串第一个字符的拼音首字母
        /// </summary>
        /// <param name="str">传入字串</param>
        /// <returns>首字母</returns>
        public string GetStringCapital(string str)
        {
            if (str.Length < 1) return "";
            string _Temp = str.Substring(0, 1);
            if (Convert.ToChar(_Temp) >= 0 && Convert.ToChar(_Temp) < 256) return _Temp;

            if (_Temp.CompareTo("吖") < 0)
            {
                return str;
            }
            if (_Temp.CompareTo("八") < 0)
            {
                return "A";
            }

            if (_Temp.CompareTo("嚓") < 0)
            {
                return "B";
            }

            if (_Temp.CompareTo("咑") < 0)
            {
                return "C";
            }
            if (_Temp.CompareTo("妸") < 0)
            {
                return "D";
            }
            if (_Temp.CompareTo("发") < 0)
            {
                return "E";
            }
            if (_Temp.CompareTo("旮") < 0)
            {
                return "F";
            }
            if (_Temp.CompareTo("铪") < 0)
            {
                return "G";
            }
            if (_Temp.CompareTo("讥") < 0)
            {
                return "H";
            }
            if (_Temp.CompareTo("咔") < 0)
            {
                return "J";
            }
            if (_Temp.CompareTo("垃") < 0)
            {
                return "K";
            }
            if (_Temp.CompareTo("嘸") < 0)
            {
                return "L";
            }
            if (_Temp.CompareTo("拏") < 0)
            {
                return "M";
            }
            if (_Temp.CompareTo("噢") < 0)
            {
                return "N";
            }
            if (_Temp.CompareTo("妑") < 0)
            {
                return "O";
            }
            if (_Temp.CompareTo("七") < 0)
            {
                return "P";
            }
            if (_Temp.CompareTo("亽") < 0)
            {
                return "Q";
            }
            if (_Temp.CompareTo("仨") < 0)
            {
                return "R";
            }
            if (_Temp.CompareTo("他") < 0)
            {
                return "S";
            }
            if (_Temp.CompareTo("哇") < 0)
            {
                return "T";
            }
            if (_Temp.CompareTo("夕") < 0)
            {
                return "W";
            }
            if (_Temp.CompareTo("丫") < 0)
            {
                return "X";
            }
            if (_Temp.CompareTo("帀") < 0)
            {
                return "Y";
            }
            if (_Temp.CompareTo("咗") < 0)
            {
                return "Z";
            }
            return _Temp;
        }
        #endregion

        #region 将System.Web.HttpPostedFile 转化为byte[]
        /// <summary>
        ///函数名称:PostedFileToBytes
        ///函数性能功能描述:将System.Web.HttpPostedFile 转化为byte[]
        ///本函数调用的类与函数清单:
        /// </summary>
        /// <returns>byte[]</returns>
        public byte[] PostedFileToBytes(System.Web.HttpPostedFile PostFile)
        {
            int FileSize = PostFile.ContentLength;    //大小
            byte[] fileContent;//实际文件的数据.
            string FileType = PostFile.ContentType;//发送文件的MIME内容类型
            BinaryReader AttContent = new BinaryReader(PostFile.InputStream);//获得文件的流
            AttContent.BaseStream.Seek(0, SeekOrigin.Begin);
            return fileContent = AttContent.ReadBytes(FileSize);//获得文件的字节流
        }
        #endregion

        #region 从路径形式的字串中提取文件名
        /// <summary>
        /// 从路径形式的字串中提取文件名
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="withext">是否带扩展名</param>
        /// <returns>文件名</returns>
        public string GetFileName(string path, bool withext)
        {
            int last = path.LastIndexOf("\\");
            if (last >= 0)
            {
                path = path.Substring(last + 1);
            }
            last = path.LastIndexOf(".");
            if (withext || last < 0)
            {
                return path;
            }
            else
            {
                return path.Substring(0, last);
            }
        }

        /// <summary>
        /// 从路径形式的字串中提取文件名
        /// </summary>
        /// <param name="path">路径</param>
        /// <returns>文件名</returns>
        public string GetFileName(string path)
        {
            return this.GetFileName(path, true);
        }
        #endregion

        #region 请求internet页面Html源码

        /// <summary>
        /// 请求并下载页面
        /// </summary>
        /// <returns>The data downloaded from the page</returns>
        public string GetPageHTML(string url)
        {
            string m_uri = url;
            WebResponse response = null;
            Stream stream = null;
            StreamReader reader = null;

            try
            {
                //----------返回被请求的internet上的资源---------
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_uri);
                response = request.GetResponse();
                stream = response.GetResponseStream();
                //------------------------------
                if (!response.ContentType.ToLower().StartsWith("text/"))//如果类型不是text 就调用SaveBinaryFile写成二近制文件
                {
                    //SaveBinaryFile(response);//写二进制文件
                    return null;
                }

                string buffer = "", line;

                reader = new StreamReader(stream, Encoding.GetEncoding("gb2312"));

                while ((line = reader.ReadLine()) != null)
                {
                    buffer += line + "\r\n";
                }
                return buffer;
            }
            //catch(WebException e)
            catch
            {
                return "";
            }
            //catch(IOException e)

            finally
            {
                if (reader != null) reader.Close();
                if (stream != null) stream.Close();
                if (response != null) response.Close();
            }
        }
        /// <summary>
        /// 信息写入磁盘
        /// </summary>
        /// <param name="buffer">写入内容</param>
        /// <param name="Path">写入的实际地址和完整的文件名称</param>
        /// <returns></returns>
        public bool SaveTextFile(string buffer, string Path)// 保存文本文件
        {
            if (Path == "")
                return false;

            string filename = Path;//创建文件名和文件目录
            try
            {
                StreamWriter outStream = new StreamWriter(filename, false, Encoding.GetEncoding("gb2312"));
                //写磁盘
                outStream.WriteLine(buffer);
                outStream.Close();
                return true;
            }
            catch
            {
                return false;
            }
        }
        /// <summary>
        /// 生成静态页面
        /// </summary>
        /// <param name="url">资源页面URL地址</param>
        /// <param name="htmlfileAbsPath">生成的目录html文件绝对路径</param>
        /// <returns>是否生成成功</returns>
        public bool GenHTML(string url, string htmlfileAbsPath, Page page)
        {
            try
            {
                string source = this.GetPageHTML(url);

                if (source.ToString() != "")
                {
                    this.SaveTextFile(source, htmlfileAbsPath);

                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
        #endregion

        #region 使用正则方式替换字串
        /// <summary>
        /// 使用正则方式替换字串
        /// </summary>
        /// <param name="txt">要进行操作的字串</param>
        /// <param name="reg">正则字串</param>
        /// <param name="replace">替换字串</param>
        /// <returns>结果字串</returns>
        public string RegReplace(string txt, string reg, string replace)
        {
            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(reg);
            return regex.Replace(txt, replace);
        }
        #endregion

        #region IP部分保密处理
        public string IPSafe(string ip)
        {
            int dotStart = ip.LastIndexOf(".") + 1;
            if (dotStart < 1) return "未知";
            int dotEnd = ip.Length;
            return ip.Remove(dotStart, dotEnd - dotStart) + "*";
        }
        #endregion

        #region 读取配置节
        /// <summary>
        /// 读取配置节内容
        /// </summary>
        /// <param name="key">配置标识</param>
        /// <returns>结果字串</returns>
        public string GetAppsetting(string key)
        {
            try
            {
                return System.Configuration.ConfigurationSettings.AppSettings[key];
            }
            catch
            {
                return null;
            }
        }
        #endregion

        #region  删除磁盘文件
        /// <summary>
        /// 删除磁盘文件
        /// </summary>
        /// <param name="Path">文件路径</param>
        /// <returns></returns>
        public bool DeleteFile(string Path)
        {
            try
            {
                System.IO.File.Delete(Path);
                return true;
            }
            catch
            {
                return false;
            }
        }
        #endregion

        #region 发送电子邮件
        /// <summary>
        /// 发送电子邮件
        /// </summary>
        /// <param name="email">收件人地址</param>
        /// <param name="name">收件人姓名</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="body">邮件正文</param>
        public bool SendMail(string EmailSendTheme, string email, string name, string subject, string body)
        {
            string mailsetup = this.GetAppsetting("emailset");
            string s_object;
            string s_email;
            string s_name;
            string s_server;
            string s_passport;
            string s_passkey;
            try
            {
                char[] sep = { ‘,‘ };
                string[] vals = mailsetup.Split(sep);

                s_object = vals[0].Trim().ToLower();
                //(1)表示发件人的E-Mail地址。该地址一般与使用SMTP服务器验证时所需的登录帐户相同。
                s_email = vals[1].Trim();
                //(2)表示发件人的名称。
                s_name = vals[2].Trim();
                //(3)可以忽略 EHLO/HELO 状态对你的mailserver
                s_server = vals[3].Trim();
                //(4)表示当邮件服务器使用SMTP发信验证时设置的登录帐户。
                s_passport = vals[4].Trim();
                //(5)表示当邮件服务器使用SMTP发信验证时设置的密码
                s_passkey = vals[5].Trim();
            }
            catch
            {
                return false;
            }

            switch (s_object)
            {
                case "jmail":
                    jmail.MessageClass jmail = new jmail.MessageClass();
                    //Logging属性,表示是否启用日志
                    jmail.Logging = true;
                    //表示屏蔽例外错误,返回FALSE或TRUE值,当值为TRUE时,表示邮件发送会忽略错误,不将错误信息返回给操作系统。
                    jmail.Silent = true;
                    jmail.Priority = 1;
                    jmail.Encoding = "GB2312";
                    //设置邮件显示的字符集,中文简体可使用utf-8
                    jmail.Charset = "GB2312";
                    jmail.ISOEncodeHeaders = false;
                    // 邮件主体(HTML(注意信件内链接附件的方式))   x
                    jmail.HTMLBody = body;
                    //邮件主题
                    jmail.Subject = subject;
                    //表示发件人的E-Mail地址。该地址一般与使用SMTP服务器验证时所需的登录帐户相同。
                    jmail.From = s_email;
                    //表示发件人的名称。
                    jmail.FromName = s_name;
                    //表示当邮件服务器使用SMTP发信验证时设置的登录帐户。( 身份验证 )
                    jmail.MailServerUserName = s_passport;
                    jmail.MailServerPassWord = s_passkey;
                    //可以忽略 EHLO/HELO 状态对你的mailserver
                    jmail.MailDomain = s_server;
                    //表示收件人的E-Mail地址。
                    jmail.AddRecipient(email, name, null);
                    bool result = jmail.Send(s_server, false);
                    jmail.Close();
                    return result;
                case "cdo":
                    System.Web.Mail.MailMessage cdomail = new MailMessage();
                    cdomail.To = "\"" + HttpUtility.HtmlEncode(name) + "\"<" + email + ">";
                    cdomail.From = "\"" + HttpUtility.HtmlEncode(s_name) + "\"<" + s_email + ">";
                    cdomail.BodyEncoding = Encoding.UTF8;
                    cdomail.BodyFormat = MailFormat.Html;
                    cdomail.Priority = MailPriority.High;
                    cdomail.Subject = subject;
                    cdomail.Body = body;
                    SmtpMail.Send(cdomail);
                    return true;
                case "cdo2":
                    MailMessage cdomail2 = new MailMessage();
                    cdomail2.To = email;
                    cdomail2.From = s_email;
                    cdomail2.Subject = subject;
                    cdomail2.Body = body;
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", "2");
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", s_server);
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", 10);
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", s_passport);
                    cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", s_passkey);
                    SmtpMail.Send(cdomail2);
                    return true;
                default:
                    return false;
            }

        }
        #endregion

        #region 替换非法字符
        public string Sqlstring(string str)
        {
            if (str != null && str != "")
            {
                str = str.Replace("‘", "");
                str = str.Replace("\"", "");
                str = str.Replace(";", "");
                str = str.Replace("<", "");
                str = str.Replace(">", "");
                str = str.Replace("(", "");
                str = str.Replace(")", "");
                str = str.Replace("*", "");
                str = str.Replace("--", "");
                str = str.Replace("select", "");
                str = str.Replace("SELECT", "");
                str = str.Replace("insert", "");
                str = str.Replace("INSERT", "");
                str = str.Replace("update", "");
                str = str.Replace("UPDATE", "");
                str = str.Replace("delete", "");
                str = str.Replace("DELETE", "");
                str = str.Replace("create", "");
                str = str.Replace("CREATE", "");
                str = str.Replace("drop", "");
                str = str.Replace("DROP", "");
                str = str.Replace("delcare", "");
                str = str.Replace("DELCARE", "");
                str = str.Replace("truncate", "");
                str = str.Replace("TRUNCATE", "");
                str = str.Replace("script", "");
                str = str.Replace("SCRIPT", "");
                //str = str.Replace("and", "");
                //str = str.Replace("AND", "");
                str = FilterXSS(str);
            }
            return str;
        }

        public string Sqlstring(string str, int id)
        {
            if (str != null && str != "")
            {
                str = str.Replace("‘", "’");
                str = str.Replace("\"", "”");
                str = str.Replace(";", ";");
                str = str.Replace("<", "[");
                str = str.Replace(">", "]");
                str = str.Replace("(", "(");
                str = str.Replace(")", ")");
                str = str.Replace("*", "×");
                str = str.Replace("--", "");
                str = str.Replace("\r\n", "<br>");
                str = str.Replace("\n", "<br>");
                //str = str.Replace(" ","&nbsp;");
                str = str.Replace("select", "");
                str = str.Replace("SELECT", "");
                str = str.Replace("insert", "");
                str = str.Replace("INSERT", "");
                str = str.Replace("update", "");
                str = str.Replace("UPDATE", "");
                str = str.Replace("delete", "");
                str = str.Replace("DELETE", "");
                str = str.Replace("create", "");
                str = str.Replace("CREATE", "");
                str = str.Replace("drop", "");
                str = str.Replace("DROP", "");
                str = str.Replace("delcare", "");
                str = str.Replace("DELCARE", "");
                str = str.Replace("truncate", "");
                str = str.Replace("TRUNCATE", "");
                str = str.Replace("script", "");
                str = str.Replace("SCRIPT", "");
                //str = str.Replace("and", "");
                //str = str.Replace("AND", "");
                str = FilterXSS(str);
            }
            return str;
        }
        #endregion;

        #region 过滤xss攻击脚本
        /// <summary>
        /// 过滤xss攻击脚本
        /// </summary>
        /// <param name="input">传入字符串</param>
        /// <returns>过滤后的字符串</returns>
        public string FilterXSS(string html)
        {
            if (string.IsNullOrEmpty(html)) return string.Empty;

            // CR(0a) ,LF(0b) ,TAB(9) 除外,过滤掉所有的不打印出来字符.
            // 目的防止这样形式的入侵 <java\0script>
            // 注意:\n, \r,  \t 可能需要单独处理,因为可能会要用到
            string ret = System.Text.RegularExpressions.Regex.Replace(
                html, "([\x00-\x08][\x0b-\x0c][\x0e-\x20])", string.Empty);

            //替换所有可能的16进制构建的恶意代码
            //<IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&_#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>
            string chars = "[email protected]#$%^&*()~`;:?+/={}[]-_|‘\"\\";
            for (int i = 0; i < chars.Length; i++)
            {
                ret = System.Text.RegularExpressions.Regex.Replace(ret, string.Concat("(&#[x|X]0{0,}", Convert.ToString((int)chars[i], 16).ToLower(), ";?)"),
                    chars[i].ToString(), System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            }

            //过滤\t, \n, \r构建的恶意代码
            string[] keywords = {"javascript", "vbscript", "expression", "applet", "meta", "xml", "blink", "link", "style", "script", "embed", "object", "iframe", "frame", "frameset", "ilayer", "layer", "bgsound", "title", "base"
        ,"onabort", "onactivate", "onafterprint", "onafterupdate", "onbeforeactivate", "onbeforecopy", "onbeforecut", "onbeforedeactivate", "onbeforeeditfocus", "onbeforepaste", "onbeforeprint", "onbeforeunload", "onbeforeupdate", "onblur", "onbounce", "oncellchange", "onchange", "onclick", "oncontextmenu", "oncontrolselect", "oncopy", "oncut", "ondataavailable", "ondatasetchanged", "ondatasetcomplete", "ondblclick", "ondeactivate", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "onerror", "onerrorupdate", "onfilterchange", "onfinish", "onfocus", "onfocusin", "onfocusout", "onhelp", "onkeydown", "onkeypress", "onkeyup", "onlayoutcomplete", "onload", "onlosecapture", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onmove", "onmoveend", "onmovestart", "onpaste", "onpropertychange", "onreadystatechange", "onreset", "onresize", "onresizeend", "onresizestart", "onrowenter", "onrowexit", "onrowsdelete", "onrowsinserted", "onscroll", "onselect", "onselectionchange", "onselectstart", "onstart", "onstop", "onsubmit", "onunload"};

            bool found = true;
            while (found)
            {
                string retBefore = ret;
                for (int i = 0; i < keywords.Length; i++)
                {
                    string pattern = "/";
                    for (int j = 0; j < keywords[i].Length; j++)
                    {
                        if (j > 0)
                            pattern = string.Concat(pattern, ‘(‘, "(&#[x|X]0{0,8}([9][a][b]);?)?", "|(&#0{0,8}([9][10][13]);?)?",
                                ")?");
                        pattern = string.Concat(pattern, keywords[i][j]);
                    }
                    string replacement = string.Concat(keywords[i].Substring(0, 2), "<x>", keywords[i].Substring(2));
                    ret = System.Text.RegularExpressions.Regex.Replace(ret, pattern, replacement, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
                    if (ret == retBefore)
                        found = false;
                }

            }

            return ret;
        }
        #endregion

        #region 是否空
        /// <summary>是否空</summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns>true/false</returns>
        public bool IsBlank(string strInput)
        {
            if (strInput == null || strInput.Trim() == "")
            {
                return true;
            }
            else
            {
                return false;
            }

        }
        #endregion

        #region 是否数字
        /// <summary>是否数字</summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns>true/false</returns>
        private Regex RegNumber = new Regex("^[0-9]+$");
        private static Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$");
        public bool IsNumeric(string strInput)
        {
            if (strInput != null && strInput != "")
            {
                Match m = RegNumber.Match(strInput);
                return m.Success;
            }
            else
            {
                return false;
            }

        }
        public bool IsDecimal(string inputData)
        {
            if (inputData != null && inputData != "")
            {
                Match m = RegNumber.Match(inputData);
                if (m.Success) return m.Success;

                m = RegDecimal.Match(inputData);
                return m.Success;
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 是否日期
        /// <summary>是否日期</summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns>true/false</returns>
        public bool isDate(string strInput)
        {
            try
            {
                if (strInput != null && strInput != "" && strInput.Length >= 8)
                {
                    string s = strInput.Substring(0, 4);
                    if (!IsNumeric(s) || int.Parse(s) < 1900)
                    {
                        return false;
                    }
                    else
                    {
                        DateTime t = Convert.ToDateTime(strInput);
                        return true;
                    }
                }
                else
                {
                    return false;
                }
            }
            catch
            {
                return false;
            }
        }
        #endregion

        #region 是否为合法的手机号码
        /// <summary>是否为合法的手机号码</summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns>true/false</returns>
        private Regex RegMobile = new Regex(@"(^(13\d{9})$)|(^(15\d{9})$)|(^(18\d{9})$)|(^(14\d{9})$)");
        public bool isMobile(string strInput)
        {
            if (strInput != null && strInput != "")
            {
                Match m = RegMobile.Match(strInput);
                return m.Success;
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 是否为合法的电话号码

        /// <summary>是否为合法的电话号码</summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns>true/false</returns>
        private Regex RegTEL = new Regex(@"(^(\d{7,8})$)|(^(0\d{2,3}\-\d{6,8}(\-\d{1,4})?)$)");
        public bool isTel(string strInput)
        {
            if (strInput != null && strInput != "")
            {
                Match m = RegTEL.Match(strInput);
                return m.Success;
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region 邮政编码
        /// <summary>
        /// 是否是邮政编码
        /// </summary>
        /// <param name="inputData">输入字符串</param>
        /// <returns></returns>
        private Regex RegZip = new Regex(@"^(\d{6})$");
        public bool IsZip(string inputData)
        {
            if (inputData != null && inputData != "")
            {
                Match m = RegZip.Match(inputData);
                return m.Success;
            }
            else
            {
                return false;
            }
        }

        #endregion

        #region 是否为身份证号
        /// <summary>
        /// 是否为身份证号
        /// </summary>
        /// <param name="strInput">输入字符串</param>
        /// <returns></returns>
        private Regex RegIDCard = new Regex("^[1-9]([0-9]{17}|[0-9]{14}|[0-9]{16}[0-9,X,x])$");
        public bool IsIDCard(string strInput)
        {
            if (strInput != null && strInput != "")
            {
                Match m = RegIDCard.Match(strInput);
                return m.Success;
            }
            else
            {
                return false;
            }
        }
        #endregion

        #region js脚本
        public void Alert(string message, int ID)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                    alert(‘" + message + "‘);history.go(" + ID + ");</Script>";
            HttpContext.Current.Response.Write(js);
        }
        public void Alert(string message)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                    alert(‘" + message + "‘);</Script>";
            HttpContext.Current.Response.Write(js);
        }
        public void Alert(System.Web.UI.Page page, string message, int ID)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                    alert(‘" + message + "‘);history.go(" + ID + ");</Script>";
            page.ClientScript.RegisterStartupScript(this.GetType(), "提示", js);
        }
        public void Alert(System.Web.UI.Page page, string message)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                    alert(‘" + message + "‘);</Script>";
            page.ClientScript.RegisterStartupScript(this.GetType(), "提示", js);
        }
        /// <summary>
        /// 弹出窗口,转向Url制定的页面
        /// </summary>
        /// <param name="url"></param>
        public void Location(string message, string url)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                   alert(‘" + message + "‘); window.location.replace(‘{0}‘);";
            js += "</Script>";
            js = string.Format(js, url);
            HttpContext.Current.Response.Write(js);
        }
        /// <summary>
        /// 弹出窗口,转向Url制定的页面
        /// </summary>
        /// <param name="url"></param>
        public void Location(System.Web.UI.Page page, string message, string url)
        {
            message = this.Sqlstring(message);
            string js = @"<Script language=‘JavaScript‘ defer>
                   alert(‘" + message + "‘); window.location.replace(‘{0}‘);</Script>";
            js = string.Format(js, url);
            page.ClientScript.RegisterStartupScript(this.GetType(), "提示", js);
        }

        /// <summary>
        /// 输出自定义脚本信息
        /// </summary>
        /// <param name="page">当前页面指针,一般为this</param>
        /// <param name="script">输出脚本</param>
        public void ResponseScript(System.Web.UI.Page page, string script)
        {
            page.ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language=‘javascript‘ defer>" + script + "</script>");
        }
        #endregion

        #region 按字节截取字符串省略
        /// <summary>
        /// 获取字符串长度,中文为两个字符
        /// </summary>
        /// <param name="str">测试的字符串</param>
        /// <returns></returns>
        public int GetStrLen(string str)
        {
            String pattern = @"[^\x00-\xff]";
            string s = Regex.Replace(str, pattern, "aa");
            return s.Length;
        }

        /// <summary>
        /// 替换html代码为控件中可见字符
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string DecBrSql(string str)
        {
            if (str != null && str != "")
            {
                str = str.Replace("&nbsp;", " ");
                str = str.Replace("<br>", " ");
            }
            return str;
        }

        #region 根据指定字符串长度获取字符串
        /// <summary>
        /// 根据指定字符串长度获取字符串
        /// </summary>
        /// <param name="s">要截取的字符串</param>
        /// <param name="len">字符串长度</param>
        /// <returns></returns>
        public string GetStrLen(string s, int len)
        {
            string ss = DecBrSql(s);
            int l = GetStrLen(ss);
            int i = l / 2;
            int m = l % 2;
            if (i > len || (i == len && m > 0))
            {
                return ss.Substring(0, len) + "..";
            }
            else
            {
                return ss;
            }
        }
        #endregion
        #endregion

        #region 去掉最后一个逗号
        /// <summary>
        /// 去掉最后一个逗号
        /// </summary>
        /// <param name="origin"></param>
        /// <returns></returns>
        public string DelLastComma(string origin)
        {
            if (origin.IndexOf(",") == -1)
            {
                return origin;
            }
            if (origin.LastIndexOf(",") + 1 == origin.Length)
            {
                return origin.Substring(0, origin.LastIndexOf(","));
            }
            else
            {
                return origin;
            }
        }
        public string DelIndexComma(string origin)
        {
            if (origin.IndexOf(",") == -1)
            {
                return origin;
            }
            if (origin.IndexOf(",") == 0)
            {
                return origin.Substring(1, origin.Length - 1);
            }
            else
            {
                return origin;
            }
        }
        public string DelLastCommad(string origin)
        {
            if (origin.IndexOf(".") == -1)
            {
                return origin;
            }
            return origin.Substring(0, origin.LastIndexOf("."));
        }
        #endregion

        #region 替换html代码为控件中可见字符
        public string DecSql(string str)
        {
            if (str != null && str != "")
            {
                str = str.Replace("&nbsp;", " ");
                str = str.Replace("<br>", "\r\n");
            }
            return str;
        }
        #endregion

        #region 获取拆分符右边的字符串
        public string RightSplit(string sourceString, char splitChar)
        {
            string result = null;
            string[] tempString = sourceString.Split(splitChar);
            if (tempString.Length > 0)
            {
                result = tempString[tempString.Length - 1].ToString();
            }
            return result;
        }
        #endregion

        #region 转拼音
        /**/
        /// <summary>
        /// 该类提供将指定汉字转化为拼音码、拼音首字母等一些相关方法;
        /// 如果给定的字符为非中文汉字将不执行转化,直接返回原字符;
        /// </summary>
        //编码定义#region 编码定义

        private static int[] pyvalue = new int[]
            {
                -20319, -20317, -20304, -20295, -20292, -20283, -20265, -20257, -20242, -20230, -20051, -20036, -20032,
                -20026,
                -20002, -19990, -19986, -19982, -19976, -19805, -19784, -19775, -19774, -19763, -19756, -19751, -19746,
                -19741, -19739, -19728,
                -19725, -19715, -19540, -19531, -19525, -19515, -19500, -19484, -19479, -19467, -19289, -19288, -19281,
                -19275, -19270, -19263,
                -19261, -19249, -19243, -19242, -19238, -19235, -19227, -19224, -19218, -19212, -19038, -19023, -19018,
                -19006, -19003, -18996,
                -18977, -18961, -18952, -18783, -18774, -18773, -18763, -18756, -18741, -18735, -18731, -18722, -18710,
                -18697, -18696, -18526,
                -18518, -18501, -18490, -18478, -18463, -18448, -18447, -18446, -18239, -18237, -18231, -18220, -18211,
                -18201, -18184, -18183,
                -18181, -18012, -17997, -17988, -17970, -17964, -17961, -17950, -17947, -17931, -17928, -17922, -17759,
                -17752, -17733, -17730,
                -17721, -17703, -17701, -17697, -17692, -17683, -17676, -17496, -17487, -17482, -17468, -17454, -17433,
                -17427, -17417, -17202,
                -17185, -16983, -16970, -16942, -16915, -16733, -16708, -16706, -16689, -16664, -16657, -16647, -16474,
                -16470, -16465, -16459,
                -16452, -16448, -16433, -16429, -16427, -16423, -16419, -16412, -16407, -16403, -16401, -16393, -16220,
                -16216, -16212, -16205,
                -16202, -16187, -16180, -16171, -16169, -16158, -16155, -15959, -15958, -15944, -15933, -15920, -15915,
                -15903, -15889, -15878,
                -15707, -15701, -15681, -15667, -15661, -15659, -15652, -15640, -15631, -15625, -15454, -15448, -15436,
                -15435, -15419, -15416,
                -15408, -15394, -15385, -15377, -15375, -15369, -15363, -15362, -15183, -15180, -15165, -15158, -15153,
                -15150, -15149, -15144,
                -15143, -15141, -15140, -15139, -15128, -15121, -15119, -15117, -15110, -15109, -14941, -14937, -14933,
                -14930, -14929, -14928,
                -14926, -14922, -14921, -14914, -14908, -14902, -14894, -14889, -14882, -14873, -14871, -14857, -14678,
                -14674, -14670, -14668,
                -14663, -14654, -14645, -14630, -14594, -14429, -14407, -14399, -14384, -14379, -14368, -14355, -14353,
                -14345, -14170, -14159,
                -14151, -14149, -14145, -14140, -14137, -14135, -14125, -14123, -14122, -14112, -14109, -14099, -14097,
                -14094, -14092, -14090,
                -14087, -14083, -13917, -13914, -13910, -13907, -13906, -13905, -13896, -13894, -13878, -13870, -13859,
                -13847, -13831, -13658,
                -13611, -13601, -13406, -13404, -13400, -13398, -13395, -13391, -13387, -13383, -13367, -13359, -13356,
                -13343, -13340, -13329,
                -13326, -13318, -13147, -13138, -13120, -13107, -13096, -13095, -13091, -13076, -13068, -13063, -13060,
                -12888, -12875, -12871,
                -12860, -12858, -12852, -12849, -12838, -12831, -12829, -12812, -12802, -12607, -12597, -12594, -12585,
                -12556, -12359, -12346,
                -12320, -12300, -12120, -12099, -12089, -12074, -12067, -12058, -12039, -11867, -11861, -11847, -11831,
                -11798, -11781, -11604,
                -11589, -11536, -11358, -11340, -11339, -11324, -11303, -11097, -11077, -11067, -11055, -11052, -11045,
                -11041, -11038, -11024,
                -11020, -11019, -11018, -11014, -10838, -10832, -10815, -10800, -10790, -10780, -10764, -10587, -10544,
                -10533, -10519, -10331,
                -10329, -10328, -10322, -10315, -10309, -10307, -10296, -10281, -10274, -10270, -10262, -10260, -10256,
                -10254
            };

        private static string[] pystr = new string[]
            {
                "a", "ai", "an", "ang", "ao", "ba", "bai", "ban", "bang", "bao", "bei", "ben", "beng", "bi", "bian",
                "biao",
                "bie", "bin", "bing", "bo", "bu", "ca", "cai", "can", "cang", "cao", "ce", "ceng", "cha", "chai", "chan"
                , "chang", "chao", "che", "chen",
                "cheng", "chi", "chong", "chou", "chu", "chuai", "chuan", "chuang", "chui", "chun", "chuo", "ci", "cong"
                , "cou", "cu", "cuan", "cui",
                "cun", "cuo", "da", "dai", "dan", "dang", "dao", "de", "deng", "di", "dian", "diao", "die", "ding",
                "diu", "dong", "dou", "du", "duan",
                "dui", "dun", "duo", "e", "en", "er", "fa", "fan", "fang", "fei", "fen", "feng", "fo", "fou", "fu", "ga"
                , "gai", "gan", "gang", "gao",
                "ge", "gei", "gen", "geng", "gong", "gou", "gu", "gua", "guai", "guan", "guang", "gui", "gun", "guo",
                "ha", "hai", "han", "hang",
                "hao", "he", "hei", "hen", "heng", "hong", "hou", "hu", "hua", "huai", "huan", "huang", "hui", "hun",
                "huo", "ji", "jia", "jian",
                "jiang", "jiao", "jie", "jin", "jing", "jiong", "jiu", "ju", "juan", "jue", "jun", "ka", "kai", "kan",
                "kang", "kao", "ke", "ken",
                "keng", "kong", "kou", "ku", "kua", "kuai", "kuan", "kuang", "kui", "kun", "kuo", "la", "lai", "lan",
                "lang", "lao", "le", "lei",
                "leng", "li", "lia", "lian", "liang", "liao", "lie", "lin", "ling", "liu", "long", "lou", "lu", "lv",
                "luan", "lue", "lun", "luo",
                "ma", "mai", "man", "mang", "mao", "me", "mei", "men", "meng", "mi", "mian", "miao", "mie", "min",
                "ming", "miu", "mo", "mou", "mu",
                "na", "nai", "nan", "nang", "nao", "ne", "nei", "nen", "neng", "ni", "nian", "niang", "niao", "nie",
                "nin", "ning", "niu", "nong",
                "nu", "nv", "nuan", "nue", "nuo", "o", "ou", "pa", "pai", "pan", "pang", "pao", "pei", "pen", "peng",
                "pi", "pian", "piao", "pie",
                "pin", "ping", "po", "pu", "qi", "qia", "qian", "qiang", "qiao", "qie", "qin", "qing", "qiong", "qiu",
                "qu", "quan", "que", "qun",
                "ran", "rang", "rao", "re", "ren", "reng", "ri", "rong", "rou", "ru", "ruan", "rui", "run", "ruo", "sa",
                "sai", "san", "sang",
                "sao", "se", "sen", "seng", "sha", "shai", "shan", "shang", "shao", "she", "shen", "sheng", "shi",
                "shou", "shu", "shua",
                "shuai", "shuan", "shuang", "shui", "shun", "shuo", "si", "song", "sou", "su", "suan", "sui", "sun",
                "suo", "ta", "tai",
                "tan", "tang", "tao", "te", "teng", "ti", "tian", "tiao", "tie", "ting", "tong", "tou", "tu", "tuan",
                "tui", "tun", "tuo",
                "wa", "wai", "wan", "wang", "wei", "wen", "weng", "wo", "wu", "xi", "xia", "xian", "xiang", "xiao",
                "xie", "xin", "xing",
                "xiong", "xiu", "xu", "xuan", "xue", "xun", "ya", "yan", "yang", "yao", "ye", "yi", "yin", "ying", "yo",
                "yong", "you",
                "yu", "yuan", "yue", "yun", "za", "zai", "zan", "zang", "zao", "ze", "zei", "zen", "zeng", "zha", "zhai"
                , "zhan", "zhang",
                "zhao", "zhe", "zhen", "zheng", "zhi", "zhong", "zhou", "zhu", "zhua", "zhuai", "zhuan", "zhuang",
                "zhui", "zhun", "zhuo",
                "zi", "zong", "zou", "zu", "zuan", "zui", "zun", "zuo"
            };

        //#endregion

        /**/
        /// <summary>
        /// 将一串中文转化为拼音
        /// 如果给定的字符为非中文汉字将不执行转化,直接返回原字符;
        /// </summary>
        /// <param name="chsstr">指定汉字</param>
        /// <returns>拼音码</returns>
        public string ChsString2Spell(string chsstr)
        {
            string strRet = string.Empty;

            char[] ArrChar = chsstr.ToCharArray();

            foreach (char c in ArrChar)
            {
                strRet += SingleChs2Spell(c.ToString());
            }

            return strRet;
        }

        /**/
        /// <summary>
        /// 将一串中文转化为拼音
        /// </summary>
        /// <param name="chsstr">指定汉字</param>
        /// <returns>拼音首字母</returns>
        public string GetHeadOfChs(string chsstr)
        {
            string strRet = string.Empty;

            char[] ArrChar = chsstr.ToCharArray();

            foreach (char c in ArrChar)
            {
                strRet += GetHeadOfSingleChs(c.ToString());
            }

            return strRet;
        }

        /**/
        /// <summary>
        /// 单个汉字转化为拼音
        /// </summary>
        /// <param name="SingleChs">单个汉字</param>
        /// <returns>拼音</returns>
        public string SingleChs2Spell(string SingleChs)
        {
            byte[] array;
            int iAsc;
            string strRtn = string.Empty;

            array = Encoding.Default.GetBytes(SingleChs);

            try
            {
                iAsc = (short)(array[0]) * 256 + (short)(array[1]) - 65536;
            }
            catch
            {
                iAsc = 1;
            }

            if (iAsc > 0 && iAsc < 160)
                return SingleChs;

            for (int i = (pyvalue.Length - 1); i >= 0; i--)
            {
                if (pyvalue[i] <= iAsc)
                {
                    strRtn = pystr[i];
                    break;
                }
            }

            //将首字母转为大写
            if (strRtn.Length > 1)
            {
                strRtn = strRtn.Substring(0, 1).ToUpper() + strRtn.Substring(1);
            }

            return strRtn;
        }

        /**/
        /// <summary>
        /// 得到单个汉字拼音的首字母
        /// </summary>
        /// <returns></returns>
        public string GetHeadOfSingleChs(string SingleChs)
        {
            return SingleChs2Spell(SingleChs).Substring(0, 1);
        }
        #endregion

        #region CheckBoxList取值及绑定
        public string GetCheckBoxList(CheckBoxList CheckBoxList1)
        {
            string cblist = "";
            for (int i = 0; i < CheckBoxList1.Items.Count; i++)
            {
                if (CheckBoxList1.Items[i].Selected == true)
                {
                    if (cblist == "")
                    {
                        cblist += CheckBoxList1.Items[i].Value;
                    }
                    else
                    {
                        cblist += "," + CheckBoxList1.Items[i].Value;
                    }
                }
            }
            return cblist;
        }
        public string GetCheckBoxListTxt(CheckBoxList CheckBoxList1)
        {
            string cblist = "";
            for (int i = 0; i < CheckBoxList1.Items.Count; i++)
            {
                if (CheckBoxList1.Items[i].Selected == true)
                {
                    if (cblist == "")
                    {
                        cblist += CheckBoxList1.Items[i].Text;
                    }
                    else
                    {
                        cblist += "," + CheckBoxList1.Items[i].Text;
                    }
                }
            }
            return cblist;
        }

        public void PutCheckBoxList(CheckBoxList CheckBoxList1, string value)
        {
            string[] strTemp = value.Split(‘,‘);
            foreach (string str in strTemp)
            {
                for (int i = 0; i < CheckBoxList1.Items.Count; i++)
                {
                    if (CheckBoxList1.Items[i].Value == str)
                    {
                        CheckBoxList1.Items[i].Selected = true;
                    }
                }
            }
        }
        #endregion

        #region 下载
        public void DownFile(System.Web.UI.Page page, string filename)
        {
            if (filename != "")
            {
                string path = page.Server.MapPath(filename);
                System.IO.FileInfo file = new System.IO.FileInfo(path);
                if (file.Exists)
                {
                    page.Response.Clear();
                    page.Response.AddHeader("Content-Disposition", "attachment;   filename=" + file.Name);
                    page.Response.AddHeader("Content-Length", file.Length.ToString());
                    page.Response.ContentType = "application/octet-stream";
                    page.Response.Filter.Close();
                    page.Response.WriteFile(file.FullName);
                    page.Response.End();
                }
                else
                {
                    ResponseScript(page, "alert(‘文件不存在!‘);window.close();");
                }
            }
        }
        #endregion

        public string GetClientFullPathName(System.Web.UI.Page page, string file)
        {
            string FullPathName = "";
            WebbUpload m_upload = new WebbUpload();
            UploadFile m_file = m_upload.GetUploadFile(file);
            FullPathName = m_file.ClientFullPathName;
            return FullPathName;
        }
        #endregion

        public object SubStringByByte(string p)
        {
            throw new NotImplementedException();
        }
    }
}
时间: 2024-10-12 19:42:39

ASP.NET 共用类库1的相关文章

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理

本章将和大家简单分享下如何使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理. 一.注册并登录NuGet平台 NuGet官网:https://www.nuget.org/ 此处我使用的是微软账号进行关联登录 登录成功后就可以管理个人信息了,此处就不做过多的描述了 二.下载nuget.exe文件进行ASP.NET Core类库打包 下载完成后如下: 接着修改类库版本等相关信息,点击类库右键属性并选择打包,如下所示: 修改完成后记得保存并重新生成

XCLNetTools1.0(ASP.NET常用类库)

版权声明:本文为博主原创文章,未经博主允许不得转载. 2016-01-01开放所有源代码: 项目地址:https://github.com/xucongli1989/XCLNetTools 下载地址:https://github.com/xucongli1989/XCLNetTools/releases ========================================================================= 程序版本:1.0.5056.33017 发布日

ASP.Net引用类库出现问题 二

一:引用mysql.data.dll出现,问题? error: Package MySql.Data 6.9.9 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package MySql.Data 6.9.9 supports: error: - net40 (.NETFramework,Version=v4.0) error: - net45 (.NETFramework,Version=v4.5) error

ASP.NET Core 类库中取读配置文件 appsettings.json

首先引用NuGet包 Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Json Microsoft.Extensions.DependencyInjection Microsoft.Extensions.Options Microsoft.Extensions.Options.ConfigurationExtensions 我们先来看一下appsettings.json文件 { "Logging"

让ASP.NET5在Jexus上飞呀飞

就在最近一段时间,“Visual Studio 2015 CTP 5”(以下简称CTP5)发布了,CTP5的发布不仅标志着新一代的VisualStudio正式发布又向前迈出了一步,还标志着距离ASP.NET5(vNext)的正式发布不远.跟随者CTP5,KRE也从Kre beta-1.0升级到了Kre beta-2.0. 与众多.NET开发者一样,我们也一直在密切的关注ASP.NET5的发展,而作为领先的Linux.NET WebServer服务器更是如此,早在Kre beta-2.0发布前后,

如何在HTML不同的页面中,共用头部与尾部?

一.asp语言 首先制作一个头部文件head.asp,或者一个底部文件foot.asp.如主页是index.asp,调用头部代码是在index.asp文件代码的开始位置(第一个标记后面,<head>标记前面)增加如下代码: <!–#include file=”head.asp”–> 调用共用底部文件代码是在index.asp文件代码的结束位置(最后一个标记前面)增加如下代码: <!–#include file=”foot.asp”–> 二.html语言 制作一个共用头部

Asp.Net北大青鸟总结(五)-数据绑定控件

在前面的博客我已经介绍了关于一个特殊控件也是我们经常用到的控件gridview的使用实现真假分页.这也是属于绑定控件的一种使用,那么我们接下来来介绍一下数据绑定这门技术吧!  一.数据绑定的概念 数据绑定是一项非常简单.有效的技术.asp.net采用数据绑定技术将显示控件的摸个属相与数据源绑定在一起.当数据源中的数据发生变化且重新请求网页时,被绑定对象中的属性将随数据源而改变. 二.数据绑定的应用范围 数据绑定的应用范围非常广泛,数据集.数组.集合.XML文档,甚至一般的变量,都可以作为数据源,

ASP.NTE 5 Target framework dnx451 and dnxcore50(转)原文:http://www.cnblogs.com/xishuai/p/aspnet5-target-framework-dnx451-and-dnxcore50.html

中文不知如何定义标题,所以干脆就直接贴出关键字,在 ASP.NTE 5 项目的 project.json 配置文件中,会有这样的定义: "frameworks": { "dnx451": { }, "dnxcore50": { } } frameworks 配置的是什么东西?dnx451 和 dnxcore50 又是什么鬼? 可能了解过 ASP.NTE 5 的童鞋会知道,但如果再深入一些,就必须搞清楚 ASP.NTE 5 相关内容的来龙去脉,幸好

asp优化:认识和优化connection对象

在这个数据库连接中.我们使用了session对象,首先,建立一个conn的连接对象,然后连接到数据库data.mdb中,取得连接句柄后,把它保存在session("conn")这个session会话变量中,在打开记录集前,从session("conn")中取出句柄,借助于session对象.我们可以使不同的ASP页面共用一个连接对象,减少了对服务器内存的开销,而我们也不需要担心,当一个客户因为错误操作导致服务器不能析放该被占用的session连接对象,因为我们知道每