ASP.NET 共用类库

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(, );
}
#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 = "";
break;
case "lower":
series = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
break;
case "upper":
series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case "alpha":
series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
break;
default:
series = "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
break;
}
if (len < ) return "";
int olen = series.Length;
StringBuilder sb = new StringBuilder();
Random rnd = new Random();
for (int i = ; i < len; i++)
{
sb.Append(series.Substring(rnd.Next(, olen - ), ));
}
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 - ) return "";
string ext = "";
if (lidx > -)
{
ext = filename.Substring(lidx + ).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 = , j = , code;
for (i = , j = ; i < cc.Length && j < len; i++)
{
code = (int)cc[i];
if (code >= && code <= )
{
j++;
}
else
{
j += ;
}
}
if (i > )
{
return str.Substring(, i);
}
else
{
return ""; }
}
public string SubStringByByte(string str, int len, bool ismore)
{
char[] cc = str.ToCharArray();
int i = , j = , code;
for (i = , j = ; i < cc.Length && j < len; i++)
{
code = (int)cc[i];
if (code >= && code <= )
{
j++;
}
else
{
j += ;
}
}
if (i > )
{
if (!IsBlank(str))
{
if (CalcByteLength(str) > len)
{
return str.Substring(, i) + "..";
}
else
{
return str.Substring(, i);
}
}
else
{
return str.Substring(, i); }
}
else
{
return "";
}
} /// <summary>
/// 返回字节长度
/// </summary>
/// <param name="str">计算字串</param>
/// <returns>长度</returns>
public int CalcByteLength(string str)
{
char[] cc = str.ToCharArray();
int i = , j = , code;
for (i = , j = ; i < cc.Length; i++)
{
code = (int)cc[i];
if (code >= && code <= )
{
j++;
}
else
{
j += ;
}
}
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 = , j = , code;
for (i = , j = ; i < cc.Length; i++)
{
code = (int)cc[i];
if (code >= && code <= )
{
j++;
}
else
{
j += ;
}
}
return j;
}
#endregion #region 生成以日期时间为基础的不重复数字字串
private Random rnd = new Random();
/// <summary>
/// 生成以日期时间为基础的不重复数字字串
/// </summary>
/// <returns>字串</returns>
public string getIdenticalStringBaseDateTime()
{
return DateTime.Now.ToString("yyMMddHHmm") + rnd.Next(, ).ToString();
}
/// <summary>
/// 生成以日期时间为基础的不重复数字字串
/// </summary>
/// <returns>字串</returns>
public string getIdenticalStringBaseDateTime2()
{
return DateTime.Now.ToString("yyMMddHHmmss") + rnd.Next(, ).ToString();
}
#endregion #region 生成以日期时间为基的SHA1加密字串
/// <summary>
/// 生成以日期时间为基的SHA1加密字串
/// </summary>
/// <returns>40位的加密字串</returns>
public string GetSHA1StringBasedDateTime()
{
string source = DateTime.Now.ToString("yyyyMMddHHss") + rnd.Next(, ).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 < ) return false;
string begin = mime.Substring(, ).ToLower();
return begin == "image/";
}
#endregion #region 检测MIME字串是否是音频性质
/// <summary>
/// 检测MIME字串是否是音频性质
/// </summary>
/// <param name="mime"></param>
/// <returns></returns>
public bool testMimeIsAudio(string mime)
{
if (mime.Length < ) return false;
string begin = mime.Substring(, ).ToLower();
return begin == "audio/";
}
#endregion #region 检测MIME字串是否是视频性质
/// <summary>
/// 检测MIME字串是否是礼频性质
/// </summary>
/// <param name="mime"></param>
/// <returns></returns>
public bool testMimeIsVideo(string mime)
{
if (mime.Length < ) return false;
string begin = mime.Substring(, ).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 = ; 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, , , image.Width, image.Height);
Font f = new Font("Verdana", );
Brush b = new SolidBrush(Color.BurlyWood);
string addText = "熊猫伯伯\nhttp://www.pandabobo.cn";
try
{
g.DrawString(addText, f, b, , );
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, , , image.Width, image.Height);
Font f = new Font("Verdana", );
Brush b = new SolidBrush(Color.BurlyWood);
string addText = "熊猫伯伯\nhttp://www.pandabobo.cn";
try
{
g.DrawString(addText, f, b, , );
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)) * ) / ;
int wHeight = (((copyImage.Height) * (sWidth / copyImage.Width)) * ) / ;
if (sHeight < (sWidth * 0.382))
{
wWidth = (((copyImage.Width) * (sHeight / copyImage.Height)) * ) / ;
wHeight = (((copyImage.Height) * (sHeight / copyImage.Height)) * ) / ;
} //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(, , sWidth, sHeight)); //水印属性
float[][] matrixItems ={
new float[] {, , , , },
new float[] {, , , , },
new float[] {, , , , },
new float[] {, , , (float)/100f, },
new float[] {, , , , }
};
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), , , 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 = ; //原图和水印图的宽度差,即开始绘图的X位置
int y1 = ; //原图和水印图的高度差,即开始绘图的Y位置
int w = ; //生成的水印图的宽度,即结束绘图的X位置
int h = ; //生成的水印图的高度,即结束绘图的Y位置
int al; //alpha
int rl; //Red
int gl; //Green
int bl; //Blue //校验透明度
if (alpha < || alpha > )
al = ;
else
al = alpha;
if (sWidth > wWidth & sHeight > wHeight) //如果源图比水印图大
{
switch (local)
{
case : //左上
x1 = ;
y1 = ;
break;
case : //左下
x1 = ;
if ((sHeight - wHeight) > ) //源图比水印图高
y1 = sHeight - wHeight;
else
y1 = sWidth;
break;
case : //右上
y1 = ;
if ((sWidth - wWidth) > ) // 源图比水印图宽
x1 = sWidth - wWidth;
else
x1 = sWidth;
break;
case : //右下
//计算高度
if ((sHeight - wHeight) > ) //源图比水印图高
y1 = sHeight - wHeight;
else
y1 = sWidth;
//计算宽度
if ((sWidth - wWidth) > ) // 源图比水印图宽
x1 = sWidth - wWidth;
else
x1 = sWidth;
break;
case : //居中
//计算高度
if ((sHeight - wHeight) > ) //源图比水印图高
y1 = (sHeight - wHeight) / ;
else
y1 = sWidth;
//计算宽度
if ((sWidth - wWidth) > ) // 源图比水印图宽
x1 = (sWidth - wWidth) / ;
else
x1 = sWidth;
break;
}
if ((sHeight - wHeight) > )
h = wHeight;
else
h = sHeight;
if ((sWidth - wWidth) > )
w = wWidth;
else
w = sWidth;
}
else //源图比水印图小
{
x1 = ;
y1 = ;
w = sWidth;
h = sHeight;
} //开始绘图
for (x = ; x < w; x++)
{
for (y = ; y < h; y++)
{
al = alpha;
rl = wImage.GetPixel(x, y).R;
gl = wImage.GetPixel(x, y).G;
bl = wImage.GetPixel(x, y).B;
al = ; if (rl + < )
rl += ;
if (gl + < )
gl += ;
if (bl + < )
bl += ;
g.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(al, rl, gl, bl))), x1 + x, y1 + y, , );
}
}
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 = ; // 缩小的宽度
int Reduce_Height = ; // 缩小的高度 // ===通过连接创建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(, , Reduce_Width, Reduce_Height), new Rectangle(, , 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 = ;//裁剪X坐标
int CutY = ;//裁剪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 = ;
CutY = (oldHeight - CutHeight) / ;
}
else
{
CutWidth = Convert.ToInt32((float)standard_width * ((float)oldHeight / (float)standard_height));
CutHeight = oldHeight;
CutX = (oldWidth - CutWidth) / ;
CutY = ;
} //新建一个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(, , 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 = ; // 缩小的宽度
int Reduce_Height = ; // 缩小的高度 // ===通过连接创建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(, , Reduce_Width, Reduce_Height), new Rectangle(, , 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();
try
{
System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
arr[] = img.Width;
arr[] = img.Height;
img.Dispose();
}
catch
{
arr[] = -;
arr[] = -;
}
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[];
int h = (int)wh[];
if (w < || h < )
{
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 = ;
if (size < )
{
return size.ToString() + "Bit";
}
else if (size < )
{
rtnvol = (double)size / 1024.0;
return rtnvol.ToString("f2") + "KB";
}
else if (size < )
{
rtnvol = (double)size / 1048576.0;
return rtnvol.ToString("f2") + "MB";
}
else if (size < )
{
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;background-color:#000000;\">{$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("");
}
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("");
}
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 < ) return "";
string _Temp = str.Substring(, );
if (Convert.ToChar(_Temp) >= && Convert.ToChar(_Temp) < ) return _Temp; if (_Temp.CompareTo("吖") < )
{
return str;
}
if (_Temp.CompareTo("八") < )
{
return "A";
} if (_Temp.CompareTo("嚓") < )
{
return "B";
} if (_Temp.CompareTo("咑") < )
{
return "C";
}
if (_Temp.CompareTo("妸") < )
{
return "D";
}
if (_Temp.CompareTo("发") < )
{
return "E";
}
if (_Temp.CompareTo("旮") < )
{
return "F";
}
if (_Temp.CompareTo("铪") < )
{
return "G";
}
if (_Temp.CompareTo("讥") < )
{
return "H";
}
if (_Temp.CompareTo("咔") < )
{
return "J";
}
if (_Temp.CompareTo("垃") < )
{
return "K";
}
if (_Temp.CompareTo("嘸") < )
{
return "L";
}
if (_Temp.CompareTo("拏") < )
{
return "M";
}
if (_Temp.CompareTo("噢") < )
{
return "N";
}
if (_Temp.CompareTo("妑") < )
{
return "O";
}
if (_Temp.CompareTo("七") < )
{
return "P";
}
if (_Temp.CompareTo("亽") < )
{
return "Q";
}
if (_Temp.CompareTo("仨") < )
{
return "R";
}
if (_Temp.CompareTo("他") < )
{
return "S";
}
if (_Temp.CompareTo("哇") < )
{
return "T";
}
if (_Temp.CompareTo("夕") < )
{
return "W";
}
if (_Temp.CompareTo("丫") < )
{
return "X";
}
if (_Temp.CompareTo("帀") < )
{
return "Y";
}
if (_Temp.CompareTo("咗") < )
{
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(, 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 >= )
{
path = path.Substring(last + );
}
last = path.LastIndexOf(".");
if (withext || last < )
{
return path;
}
else
{
return path.Substring(, 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(".") + ;
if (dotStart < ) 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[].Trim().ToLower();
//(1)表示发件人的E-Mail地址。该地址一般与使用SMTP服务器验证时所需的登录帐户相同。
s_email = vals[].Trim();
//(2)表示发件人的名称。
s_name = vals[].Trim();
//(3)可以忽略 EHLO/HELO 状态对你的mailserver
s_server = vals[].Trim();
//(4)表示当邮件服务器使用SMTP发信验证时设置的登录帐户。
s_passport = vals[].Trim();
//(5)表示当邮件服务器使用SMTP发信验证时设置的密码
s_passkey = vals[].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 = ;
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", "");
cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", s_server);
cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout", );
cdomail2.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "");
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 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()~`;:?+/={}[]-_|'\"\\";
for (int i = ; i < chars.Length; i++)
{
ret = System.Text.RegularExpressions.Regex.Replace(ret, string.Concat("(&#[x|X]0{0,}", Convert.ToString((int)chars[i], ).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 = ; i < keywords.Length; i++)
{
string pattern = "/";
for (int j = ; j < keywords[i].Length; j++)
{
if (j > )
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(, ), "<x>", keywords[i].Substring());
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 >= )
{
string s = strInput.Substring(, );
if (!IsNumeric(s) || int.Parse(s) < )
{
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 / ;
int m = l % ;
if (i > len || (i == len && m > ))
{
return ss.Substring(, len) + "..";
}
else
{
return ss;
}
}
#endregion
#endregion #region 去掉最后一个逗号
/// <summary>
/// 去掉最后一个逗号
/// </summary>
/// <param name="origin"></param>
/// <returns></returns>
public string DelLastComma(string origin)
{
if (origin.IndexOf(",") == -)
{
return origin;
}
if (origin.LastIndexOf(",") + == origin.Length)
{
return origin.Substring(, origin.LastIndexOf(","));
}
else
{
return origin;
}
}
public string DelIndexComma(string origin)
{
if (origin.IndexOf(",") == -)
{
return origin;
}
if (origin.IndexOf(",") == )
{
return origin.Substring(, origin.Length - );
}
else
{
return origin;
}
}
public string DelLastCommad(string origin)
{
if (origin.IndexOf(".") == -)
{
return origin;
}
return origin.Substring(, 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 > )
{
result = tempString[tempString.Length - ].ToString();
}
return result;
}
#endregion #region 转拼音
/**/
/// <summary>
/// 该类提供将指定汉字转化为拼音码、拼音首字母等一些相关方法;
/// 如果给定的字符为非中文汉字将不执行转化,直接返回原字符;
/// </summary>
//编码定义#region 编码定义 private static int[] pyvalue = new int[]
{
-, -, -, -, -, -, -, -, -, -, -, -, -,
-,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-, -, -,
-, -, -, -, -, -, -, -, -, -, -, -, -,
-
}; 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[]) * + (short)(array[]) - ;
}
catch
{
iAsc = ;
} if (iAsc > && iAsc < )
return SingleChs; for (int i = (pyvalue.Length - ); i >= ; i--)
{
if (pyvalue[i] <= iAsc)
{
strRtn = pystr[i];
break;
}
} //将首字母转为大写
if (strRtn.Length > )
{
strRtn = strRtn.Substring(, ).ToUpper() + strRtn.Substring();
} return strRtn;
} /**/
/// <summary>
/// 得到单个汉字拼音的首字母
/// </summary>
/// <returns></returns>
public string GetHeadOfSingleChs(string SingleChs)
{
return SingleChs2Spell(SingleChs).Substring(, );
}
#endregion #region CheckBoxList取值及绑定
public string GetCheckBoxList(CheckBoxList CheckBoxList1)
{
string cblist = "";
for (int i = ; 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 = ; 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 = ; 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();
}
}
}
上一篇:基于ELK和Python搭建简单的监控告警系统


下一篇:2018 Multi-University Training Contest - Team 1 题解