ASP.NET(c#)常用类函数

常用函数系列:
public static string Get_ClientIP() 得到客户端IP
public static string Get_CMac(string IP) 得到客户端 CMac 地址
public static string RequestF(string xPName,string xPType,int xLenDef) 安全接收数据系列
public static string Show_Cont(string xStr) 过滤显示字串
public static string Show_jsStr(string xStr) 过滤显示js

安全检测函数:
public static string CheckUrl(string xDirPage) 上页地址认证
public static string Chk_Perm0(string xPerm,string xSys,string xAct) 权限认证系列
public static string Chk_Perm1(string xPerm,string xSys,string xAct) 权限认证系列
public static string Chk_Perm2(string xPerm,string xSys,string xAct) 权限认证系列

邮件发送函数:
public void SendEmail(string xSubj,string xCont,string FmAddr,string ToAddr)
public void SendSmtp(string xSubj,string xCont,string xFrom,string xTo)

加密解密函数:
public static string Enc_PW(string xID,string xPW,int xLen) 改装sha1+md5加密解密函数加密函数
public static string Conv_10toXX(long xNum,int xBase) 10进制 转 XX 进制
public static long Conv_XXto10(string xStr,int xBase) xx进制 转 10 进制
public static string DESDec(string pToDecrypt, string sKey) DES解密
public static string DESEnc(string pToEncrypt, string sKey) DES加密密
public static string DESPeace(string xStr, string xType) 改装DES
public static string DESSwap(string xStr, int xN) DES 改装算法

文件操作函数:
public static string fCreate(string xFile,string xContent) 建立文件
public void ImgCode (Page containsPage,string validateNum) 生成图片认证码
public static string ImgShow(string xPName,int xImgW,int xImgH,int xMaxW,int xMaxH) 按比例大小显示图片
public static DataTable fList(string xPath) 显示文件列表 显示文件夹列表
public static string fRead(string xFile) 文件读取函数
public static ArrayList fUpload(HttpPostedFile xFile,string xPath,string xOrg,int xSize,string xType) 文件上传认证函数


时间/随即字串函数:
public static string Get_AutoID(int xLen) 自动随机 ID 串
public static string Get_HHMMSS()  得到时间HHmmss格式
public static string Get_TimeID()  得到年月日时间YYYY-MM-DD HH:mm:ss格式
public static string Get_YYYYMMDD() 得到年月日YYYYMMDD格式
public static string Get_mSec() 得到毫秒
public static string Rnd_ID(string xType,int xLen)  自动随机 ID 串
public static int Rnd_NM(int xN,int xM)  自动随机 N ~ M 数字


数据库操作函数:
public static void rs_AddLog(string xconn,string xUSID,string xAct,string xSys,string xNote) 添加 Log
public static int rs_Count(string xConn,string xSQL,string xTable) 计算记录条数
public static void rs_DoSQL(string xConn,string xSQL) 执行SQL语句
public static string rs_Exist(string xConn,string xSQL,string xTable) 检查是否存在
public static void rs_List(DropDownList xDDList,string xConn,string xSql,string xDefValue,string xClear) 绑定DropDownList
public static string rs_Val(string xConn,string xSQL,string xTable,string xCol) 得到特定 字段值

 

 


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.IO;
using System.Web;
using System.Web.Mail;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using PubSet;

namespace Peace
{
 public class WebCS 
 {  
  public static string RequestQ(string xPName,string xPType,int xLenDef)
  {
   string PValue = HttpContext.Current.Request.QueryString[xPName];
   return RequestS(PValue,xPType,xLenDef);
  }
  public static string RequestF(string xPName,string xPType,int xLenDef)
  {
   string PValue = HttpContext.Current.Request.Form[xPName];
   return RequestS(PValue,xPType,xLenDef);
  }
  public static string RequestA(string xPName,string xPType,int xLenDef)
  {
   string PValue = HttpContext.Current.Request[xPName];
   return RequestS(PValue,xPType,xLenDef);
  }

  public static string RequestS(string xPName,string xPType,int xLenDef)
  {
   string PValue = xPName+""; 
   string tmpType = xPType;
   switch (tmpType)
   {
    case "N": // Number -1,0,1
     try  { string tI = (int.Parse(PValue)).ToString(); }
     catch { PValue = xLenDef.ToString();} 
     break;
    case "D": // Date
     try  { DateTime tD = DateTime.Parse(PValue); }
     catch 
     { 
      PValue = xLenDef.ToString();
      PValue = PValue.Substring(0,4)+"-"+PValue.Substring(4,2)+"-"+PValue.Substring(6,2);
     } 
     break;
    default: // Text xLenDef = 19001231
     if(PValue.Length > xLenDef) { PValue = PValue.Substring(0,xLenDef); }
     PValue = PValue.Replace("'","''");
     break;
   }
   return PValue;
  } 

  public static string Show_Text(string xStr)
  {
   string tStr = xStr;
   tStr = tStr.Replace("<","&lt;");
   tStr = tStr.Replace(">","&gt;");
   tStr = tStr.Replace("\r","<br>");
   tStr = tStr.Replace("  ","&nbsp;&nbsp;");
   tStr = tStr.Replace("\t","&nbsp;&nbsp;&nbsp;&nbsp;");
   return tStr;
  }

  public static string Show_Cont(string xStr)
  {
   string tStr = Show_Text(xStr);
   return tStr;
  }

  public static string Show_Form(string xStr)
  {
   string tStr = xStr;
   tStr = tStr.Replace("\'","'");
   tStr = tStr.Replace("\"",""");
   tStr = tStr.Replace("<","&lt;");
   tStr = tStr.Replace(">","&gt;");
   return tStr;
  }

  public static string Show_jsStr(string xStr)
  {
   string tStr = xStr;
   tStr = tStr.Replace("\'","\\\'");
   tStr = tStr.Replace("\"","\\\"");
   return tStr;
  }

  public static string Get_ClientIP()
  {
   string result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
   if (null == result || result == String.Empty) 
   {
    result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
   }
   if (null == result || result == String.Empty) 
   {
    result = HttpContext.Current.Request.UserHostAddress;
   }
   return result;
  }

  public static string Get_CMac(string IP) //para IP is the client@#s IP
  {
   string dirResults=""; //IP = "192.168.37.175";//"211.156.182.34";
   ProcessStartInfo psi  = new ProcessStartInfo();
   Process proc = new Process();
   psi.FileName = "nbtstat";
   psi.RedirectStandardInput = false;
   psi.RedirectStandardOutput = true;
   psi.Arguments = "-A " + IP;
   psi.UseShellExecute = false;
   proc = Process.Start(psi);
   dirResults = proc.StandardOutput.ReadToEnd();
   proc.WaitForExit();
   dirResults=dirResults.Replace("\r","").Replace("\n","").Replace("\t","");
   Regex reg=new Regex("Mac[ ]{0,}Address[ ]{0,}=[ ]{0,}(?<key>((.)*?)) __MAC",RegexOptions.IgnoreCase|RegexOptions.Compiled);
   Match mc=reg.Match(dirResults+"__MAC");
   if(mc.Success) 
   {
    return mc.Groups["key"].Value;
   }
   else 
   {
    reg=new Regex("Host not found",RegexOptions.IgnoreCase|RegexOptions.Compiled);
    mc=reg.Match(dirResults);
    if(mc.Success) { return "Host not found!"; }
    else   { return "N/A"; }
   }
  }
 }

 public class WebID 
 { 
  public static string Get_TimeID()
  {
   string YMDHMS = System.DateTime.Now.ToString("yyyyMMddHHmmss");
   string mSec = Get_mSec();
   return YMDHMS+mSec;
  }

  public static string Get_YYYYMMDD()
  {
   return System.DateTime.Now.ToString("yyyyMMdd");
  }

  public static string Get_HHMMSS()
  {
   return System.DateTime.Now.ToString("HHmmss");
  }

  public static string Get_mSec()
  {
   string mSec = System.DateTime.Now.Millisecond.ToString();
   mSec = "00" + mSec;
   return mSec.Substring(mSec.Length-3,3);
  }

  public static string Get_AutoID(int xLen)
  {
   long tNum = DateTime.Now.Ticks;
   string tStr = tNum.ToString("X16");
   if(xLen<tStr.Length) { tStr = tStr.Substring(0,xLen); }
   else     { tStr += Rnd_ID("KEY",xLen-tStr.Length); }
   return tStr;
  }

  public static string Rnd_ID(string xType,int xLen)
  {
   string rChar;
   int rMax,i;
   string orgNum = "0123456789";     //  10   xType = 0,A,KEY
   string orgCap = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //  26   .  -  _  $  |  !  #  [  ] 
   string orgKey = "ABCDEFGHJKLMNPQRSTUVWXY";      //  23   I  O  Z
   string oStr = "";
   string tStr = "";
   switch (xType)
   {
    case "0": rMax = 10; tStr = orgNum; break;
    case "A": rMax = 26; tStr = orgCap; break;
    default: rMax = 33; tStr = orgNum + orgKey; break;
   }
   System.Random ran = new Random(System.DateTime.Now.Second + (int)System.DateTime.Now.Ticks);
   for (i=0;i<Math.Abs(xLen);i++)
   {
    int rin = ran.Next(0,rMax-1);
    rChar = tStr.Substring(rin,1);
    oStr += rChar;
   }
   return oStr;
  }

  public static int Rnd_NM(int xN,int xM)
  {
   System.Random ran = new Random(System.DateTime.Now.Second + (int)System.DateTime.Now.Ticks);
   return ran.Next(xN,xM);
  }
 }

 public class WebRS 
 {
  public static void rs_AddLog(string xconn,string xUSID,string xAct,string xSys,string xNote)
  {
   string Tim,IP,PNow,PRef,sql;
   Tim = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")+Peace.WebID.Rnd_ID("KEY",5);
   IP = Peace.WebCS.Get_ClientIP() ;
   PNow = HttpContext.Current.Request.Url.ToString(); ;
   PRef = HttpContext.Current.Request.ServerVariables["http_referer"]+"";
   PNow = Peace.WebCS.RequestS(PNow,"",96);
   PRef = Peace.WebCS.RequestS(PRef,"",96);
   xAct = xAct.Replace("'","");
   xNote = Peace.WebCS.RequestS(xNote,"",255);
   if (PRef.IndexOf("?")>0) { PRef = PRef.Substring(0,PRef.IndexOf("?")); }
   if (PNow.IndexOf("?")>0) { PNow = PNow.Substring(0,PNow.IndexOf("?")); }
   sql  = " INSERT INTO AdmLogs (LGTime,USID,LGAct,LGPag1,LGPag2,LGSyst,LGNote,LGIP) VALUES ";
   sql += " ('"+Tim+"','"+xUSID+"','"+xAct+"','"+PNow+"','"+PRef+"','"+xSys+"','"+xNote+"','"+IP+"')";
   Peace.WebRS.rs_DoSQL(xconn,sql);
  }

  public static string rs_Val(string xConn,string xSQL,string xTable,string xCol)
  {
   string rObj;
   SqlConnection cnRec = new SqlConnection(xConn);
   SqlDataAdapter cmRec = new SqlDataAdapter(xSQL, cnRec);
   DataSet dsRec = new DataSet();
   cmRec.Fill(dsRec, xTable);
   if(dsRec.Tables[0].Rows.Count>0)
   {
    DataRow curDR;
    curDR = dsRec.Tables[0].Rows[0];
    rObj  = curDR[xCol].ToString(); 
   }
   else { rObj = ""; }
   return rObj;
  }

  public static string rs_Exist(string xConn,string xSQL,string xTable)
  {
   string rObj;
   SqlConnection cnRec = new SqlConnection(xConn);
   SqlDataAdapter cmRec = new SqlDataAdapter(xSQL, cnRec);
   DataSet dsRec = new DataSet();
   cmRec.Fill(dsRec, xTable);
   if(dsRec.Tables[0].Rows.Count>0) { rObj = "YES"; }
   else { rObj = "EOF"; }
   return rObj;
  }

  public static int rs_Count(string xConn,string xSQL,string xTable)
  {
   SqlConnection cnRec = new SqlConnection(xConn);
   SqlDataAdapter cmRec = new SqlDataAdapter(xSQL, cnRec);
   DataSet dsRec = new DataSet();
   cmRec.Fill(dsRec, xTable);
   return dsRec.Tables[0].Rows.Count;
  }

  public static void rs_DoSQL(string xConn,string xSQL)
  {
   SqlConnection conn = new SqlConnection(xConn);
   conn.Open();
   SqlCommand insCMD = new SqlCommand(xSQL,conn);
   Int32 recordsAffected = insCMD.ExecuteNonQuery();
   conn.Close();
  } 

  public static void rs_List(DropDownList xDDList,string xConn,string xSql,string xDefValue,string xClear)
  {
   string conn=PubSet.Config.cnStr; //HttpContext.Current
   SqlConnection cn = new SqlConnection( conn );
   SqlCommand cm = new SqlCommand( xSql, cn );
   cm.Connection.Open();
   SqlDataReader iReader = cm.ExecuteReader();
   if (xClear.Length>0)   // Clear Old Records;
     { xDDList.Items.Clear(); }
   while ( iReader.Read() )
   { xDDList.Items.Add( new ListItem( iReader[1].ToString(),iReader[0].ToString() ) ); }
   if(xDDList.Items.Count==0)  // If NOT found record,Add blank value,but NOT [Null]
     { xDDList.Items.Add( new ListItem( "", "" ) ); } 
   cm.Connection.Close();
  }

 }

 public class WebCheck 
 {
  public static string CheckUrl(string xDirPage)
  {
   string sPrev = HttpContext.Current.Request.ServerVariables["http_referer"]+"";
   string sNow  = HttpContext.Current.Request.Url.ToString();
   sPrev = sPrev.ToLower();
   sPrev = sPrev.Replace("http://","");
   sPrev = sPrev.Replace("www.","");
   if(sPrev.IndexOf("/",0)>0)
   { 
    sPrev = sPrev.Substring(0,sPrev.IndexOf("/",0));
   }
   sNow  = sNow.ToLower();
   if( (sPrev.Length==0) || (sNow.IndexOf(sPrev,0)<0) )
   {
    if(xDirPage=="") { /*xObj.Response.Redirect(Config.WHome);*/ }
    else    { HttpContext.Current.Response.Redirect(xDirPage); }   
   }
   return sPrev ;
  }

  public static string Chk_Perm1(string xSys,string xAct,string xPath)
  {
   string AdmPerm = (string)HttpContext.Current.Session["AdmPerm"]+"";
   string flgPerm = "Error";
   if(AdmPerm.Length<3)  { flgPerm = "Error"; }
   else      { flgPerm = Chk_Perm0(AdmPerm,xSys,xAct); }
   if( flgPerm=="Error" )
   {
    if(xPath=="")   { /*xObj.Response.Redirect(Config.WHome);*/ }
    else     { HttpContext.Current.Response.Redirect(xPath); }  
   }
   return flgPerm ;
  }

  public static string Chk_Perm2(string xSys,string xAct,string xPath)
  {
   string AdmPerm = (string)HttpContext.Current.Session["AdmPerm"]+"";
   string MemPerm = (string)HttpContext.Current.Session["MemPerm"]+"";
   string flgPerm = "Error";
   if(MemPerm.Length<3)  { flgPerm = "Error"; }
   else      { flgPerm = Chk_Perm0(MemPerm,xSys,xAct); }
   if(AdmPerm.Length>3)  { flgPerm = "Pass"; }
   if( flgPerm=="Error" )
   {
    if(xPath=="")   { HttpContext.Current.Response.Redirect("/"); }
    else     { HttpContext.Current.Response.Redirect(xPath); }  
   }
   return flgPerm ;
  }

  public static string Chk_Perm0(string xPerm,string xSys,string xAct)
  {
   string flgPerm = "(N/A)";
   if(xSys=="")   { flgPerm = "Pass"; }
   else 
   {
    if(xPerm.IndexOf("("+xSys+")")>=0)
    {
     if(xAct=="") { flgPerm = "Pass"; }     
     else 
     {
      int p1 = xPerm.IndexOf("("+xSys+")");
      int p2 = xPerm.IndexOf("(/"+xSys+")");
      if( (p1>=0) && (p2>p1) )
      {
       xPerm = xPerm.Substring(p1,p2-p1);
       xAct = xAct.ToUpper();
       if(xPerm.IndexOf(""+xAct+"")>=0)
       { flgPerm = "Pass"; }
       else { flgPerm = "Error"; }
      }
      else  { flgPerm = "Error"; }
     }
    }
    else    { flgPerm = "Error"; }     
   }
   return flgPerm ;
  }

 }

 public class WebEnc 
 {
  public static string Enc_PW(string xID,string xPW,int xLen)
  {
   string eStr1 = FormsAuthentication.HashPasswordForStoringInConfigFile(xID,"sha1"); // 40
   string eStr2 = "";
   string tStr;
   for(int i=0; i<4; i++)
   {
    tStr = eStr1.Substring(10*i,10);
    eStr2 += FormsAuthentication.HashPasswordForStoringInConfigFile(xPW+tStr,"md5"); // 32
   }
   int ne1 = (128 - xLen)/2;
   return eStr2.Substring(ne1,xLen);
  }

  public static string DESPeace(string xStr, string xType)
  {
   string oStr,sKey=PubSet.Config.DESOffset;
   if (xType=="Enc") 
   { 
    oStr = DESEnc(xStr,sKey); 
    oStr = Peace.WebEnc.DESSwap(oStr,4);
   }
   else    
   { 
    xStr = Peace.WebEnc.DESSwap(xStr,4);
    oStr = DESDec(xStr,sKey);
   }
   return oStr;
  }

  public static string DESSwap(string xStr, int xN)
  {
   int sLen;
   string s1="",s2="",s3="";
   sLen = xStr.Length;
   if ( (xN>1) && (xN<sLen) )
   {
    s1 = xStr.Substring(0,xN);
    s2 = xStr.Substring(sLen-xN,xN);
   }
   for(int i=(sLen-xN-1);i>=xN;i--)
   {
    s3 += xStr.Substring(i,1);
   }
   return s1 + s3 + s2; // xStr.Substring(xN,sLen-(2*xN))
  }

  public static string DESEnc(string pToEncrypt, string sKey)
  {
   DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
   des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
   des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
   MemoryStream ms = new MemoryStream();
   CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(),CryptoStreamMode.Write);
   cs.Write(inputByteArray, 0, inputByteArray.Length);
   cs.FlushFinalBlock();
   StringBuilder ret = new StringBuilder();
   foreach(byte b in ms.ToArray())
   {
    ret.AppendFormat("{0:X2}", b);
   }
   ret.ToString();
   return ret.ToString();
  }

  public static string DESDec(string pToDecrypt, string sKey)
  {
   DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   byte[] inputByteArray = new byte[pToDecrypt.Length / 2];
   for(int x = 0; x < pToDecrypt.Length / 2; x++)
   {
    int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));
    inputByteArray[x] = (byte)i;
   }
   des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
   des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
   MemoryStream ms = new MemoryStream();
   CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write);
   cs.Write(inputByteArray, 0, inputByteArray.Length);
   cs.FlushFinalBlock();
   StringBuilder ret = new StringBuilder(); // 把解密后的文本变成流对象
   return System.Text.Encoding.Default.GetString(ms.ToArray());
  }

  public static string Conv_10toXX(long xNum,int xBase)
  {
   string oStr = "0123456789ABCDEFGHJKLMNPQRSTUVWXY";
   long nm = xNum;
   long ni = nm / xBase;
   long nr = nm % xBase;
   int  nk = (int)nr;
   string ch = "";
   string ns = "";
   while (nm >= xBase)
   {
    ni = nm / xBase;
    nr = nm % xBase;
    nk = (int)nr;
    ch = oStr.Substring(nk,1);
    ns += ch;
    nm = ni;
   }
   if(nm!=0)
   {
    nk = (int)nm;
    ch = oStr.Substring(nk,1);
    ns += ch;
   }
   string rs = "";
   for(int i=ns.Length; i>0; i--)
   {
    rs += ns.Substring(i-1,1);
   }
   return rs;
  }

  public static long Conv_XXto10(string xStr,int xBase)
  {
   string oStr = "0123456789ABCDEFGHJKLMNPQRSTUVWXY";
   int i,p;
   double rn = 0;
   string ch = "" ;
   for(i=xStr.Length; i>0; i--)
   {
    ch = xStr.Substring(i-1,1);
    p = oStr.IndexOf(ch);
    rn += p * Math.Pow(xBase,(xStr.Length-i));
   }
   return (long)rn;
  }
 }

 public class WebEmail 
 {
  public void SendEmail(string xSubj,string xCont,string FmAddr,string ToAddr)
  {
   //
   string MsgSubj;
   //
  }

  public void SendSmtp(string xSubj,string xCont,string xFrom,string xTo)
  {
   MailMessage mObj = new MailMessage();
   mObj.From    = xFrom;
   mObj.To      = xTo;
   mObj.Subject = xSubj;
   mObj.Body    = xCont;
   mObj.BodyFormat   = MailFormat.Html;
   //mObj.BodyEncoding = "gb2312";
   //mObj.Priority = MailPriority.Normal/Low/High;
   //mObj.Attachments.Add(new MailAttachment("c:\\test.txt"));
   SmtpMail.Send(mObj);
  }
 }

 public class WebFile
 {
  // File.Delete("F:\\net\\241.net\\t2\\t2\\t2\txt");
  // Directory.CreateDirectory("F:\\net\\241.net\\t2\\t2\\t2"); 
  // Directory.Delete();
  public static string fCreate(string xFile,string xContent)
  {
   string fRes;
   FileStream fs;
   if ( !File.Exists(xFile) ) 
   {
    fs = new FileStream(xFile, FileMode.OpenOrCreate, FileAccess.Write);
    fRes = "Create";
   }
   else 
   {
    fs = new FileStream(xFile, FileMode.Truncate, FileAccess.Write);
    fRes = "Edit";
   }
   StreamWriter w = new StreamWriter(fs);
   w.Write (xContent);
   w.Flush(); 
   fs.Close();
   return fRes;
  }
  public static string fRead(string xFile)
  {
   string fRes;
   if ( !File.Exists(xFile) ) { fRes = "\0"; }
   else 
   {
    FileStream fs = new FileStream(xFile, FileMode.Open, FileAccess.Read);
    StreamReader sr = new StreamReader(fs); // ,Encoding.GetEncoding(950),true
    fRes = sr.ReadToEnd();
    fs.Close();
    
   }
   return fRes;
  }

  public static DataTable fList(string xPath)
  {
   Directory.CreateDirectory(xPath);
   DataTable dt = new DataTable();
   DataRow dr;
   dt.Columns.Add(new DataColumn("Object Name", typeof(string)));
   dt.Columns.Add(new DataColumn("Type", typeof(string)));
   dt.Columns.Add(new DataColumn("Size", typeof(string)));
   dt.Columns.Add(new DataColumn("Date Created", typeof(string)));
   dt.Columns.Add(new DataColumn("Date Modified", typeof(string)));

   DirectoryInfo cd = new DirectoryInfo(xPath+  "\\");
   foreach (DirectoryInfo Dir in cd.GetDirectories())
   {
    dr = dt.NewRow(); 
    dr[0] = Dir.Name;
    dr[1] = "Dir.";
    dr[2] = ""; 
    dr[3] = Dir.CreationTime.ToString("yy-MM-dd HH:mm");
    dr[4] = Dir.LastWriteTime.ToString("yy-MM-dd HH:mm");
    dt.Rows.Add(dr);  
   }
   foreach (FileInfo Fil in cd.GetFiles())
   {
    dr = dt.NewRow();
    dr[0] = Fil.Name;
    dr[1] = "File";
    dr[2] = Fil.Length; // "999,999,999,999"
    dr[3] = Fil.CreationTime.ToString("yy-MM-dd HH:mm");
    dr[4] = Fil.LastWriteTime.ToString("yy-MM-dd HH:mm");
    dt.Rows.Add(dr);      
   }   
   return dt;
  }

  public static ArrayList fUpload(HttpPostedFile xFile,string xPath,string xOrg,int xSize,string xType)
  {
   ArrayList OutArr = new ArrayList();
   OutArr.Add(""); //Rerurn Result
   OutArr.Add(""); //Extend File Name
   OutArr.Add(""); //Org File Name
   OutArr.Add("0"); //Size
   OutArr.Add("0"); //Width
   OutArr.Add("0"); //Height
 
   HttpPostedFile pFile = xFile; // Get Files Info
   int fSize = pFile.ContentLength;
   byte[] fData = new byte[fSize];
   string upFlag = "(OK)";
   string fType = "",fName="";

   xSize *= 1024;    // Check Files Size
   if( (xSize<5120)||(xSize>204800) ) { xSize = 198*1024; }
   if(fSize==0)    { upFlag = "Siz0"; }
   if(fSize>xSize) { upFlag = "Size"; }
   OutArr[3] = fSize.ToString(); //OutFileSize = fSize; // *****

   if(upFlag=="(OK)")   // Check Files Type
   {
    int cPos = xOrg.LastIndexOf("\\") + 1;
    fName = xOrg.Substring(cPos,(xOrg.Length-cPos));
    fType = fName;
    cPos = fType.LastIndexOf(".");
    if(cPos>0) { fType = fName.Substring(cPos,(fName.Length-cPos)).ToUpper(); }
    else  { fType = "(ER)"; }
    OutArr[1] = fType; //OutFileExt = fType;  // *****
    OutArr[2] = fName; //OutFileName = fName; // *****
    xType = xType.ToUpper();
    if(xType.IndexOf(fType)<0) { upFlag = "Type"; }
    string yType = "/.ASP/.ASPX/.EXE/.ASAX/.ASA/";
    if(yType.IndexOf(fType)>=0) { upFlag = "yTyp"; }
   }
 
   if(upFlag=="(OK)")  // Save Files
   {
    pFile.InputStream.Read(fData,0,fSize);
    xPath += fType;
    FileStream tFile = new FileStream(xPath,FileMode.Create);
    tFile.Write(fData,0,fData.Length);
    tFile.Close(); 
    if ( (fType==".GIF")||(fType==".JPG")||(fType==".JPEG") ) // Get Size
    {  
     FileStream fs = File.Open(xPath,FileMode.Open,FileAccess.Read,FileShare.Read);
     Bitmap tImg = new Bitmap(fs);
     OutArr[4] = tImg.Width.ToString(); //OutFileWidth = tImg.Width;  // *****
     OutArr[5] = tImg.Height.ToString(); //OutFileHeight = tImg.Height; // *****
     fs.Close();
    }
   }
   OutArr[0] = upFlag; //OutFileRes = upFlag;
   return OutArr;

  }

  public static string ImgShow(string xPName,int xImgW,int xImgH,int xMaxW,int xMaxH)
  {
   string fRes="";
   float oW=xMaxW, oH=xMaxH;
   float oScale=xMaxW/xMaxH;
   float iScale=xImgW/xImgW;
   if(( xImgW>xMaxW) && (xImgH>xMaxH) ) { // >>
    if(iScale>oScale) { oW = xMaxW; oH = xImgH/iScale; }
    if(iScale<oScale) { oH = xMaxH; oW = xMaxW*iScale; }
   }
   if(( xImgW>xMaxW) && (xImgH<xMaxH) ) { // ><
          oW = xMaxW; oH = xImgH/iScale;
   }
   if(( xImgW<xMaxW) && (xImgH>xMaxH) ) { // <>
          oH = xMaxH; oW = xMaxW*iScale;
   }
   if(( xImgW<xMaxW) && (xImgH<xMaxH) ) { // <<
          oW = xImgW; oH = xImgH; 
   }
   fRes = "<img border='0' src='" +xPName+ "' width=" +oW+ " height=" +oH+ ">";
   return fRes;
  }

  /**********************Created by Chen**************************
  *如果你觉得本人的文章好,要引用请尊重著作人的劳动果实,说明
  http://edu.pingjiang.com/net/02/45843.htm
  *出处以及原创作者,Thank you!!!   email:aishen944-sohu.com
  http://www.dg.gd.cn 东莞网络 谢永顺[Peace] 整理修改 (xpigeon@163.com;QQ:80893510)
  *******************************************************************/
  /// <summary>
  /// 创建验证码的图片 CreateValidateGraphic
  /// </summary>
  /// <param name="containsPage">要输出到的page对象</param>
  /// <param name="validateNum">验证码</param>
  public void ImgCode (Page containsPage,string validateNum)
  {
   Bitmap image=new Bitmap((int)Math.Ceiling(validateNum.Length*12.5),22);
   Graphics g=Graphics.FromImage(image);
   try
   {
    //生成随机生成器
    Random random=new Random();
    //清空图片背景色
    g.Clear(Color.White);
    //画图片的干扰线
    for(int i=0;i<5;i++)
    {
     int x1=random.Next(image.Width);
     int x2=random.Next(image.Width);
     int y1=random.Next(image.Height);
     int y2=random.Next(image.Height);
     g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2);
    }//
    Font font=new Font("Courier",12,(FontStyle.Bold)); //Arial |FontStyle.Italic
    LinearGradientBrush brush=new LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),
     Color.Blue,Color.DarkRed,1.2f,true);
    g.DrawString(validateNum,font,brush,3,2);
    //画图片的前景干扰点
    for(int i=0;i<10;i++)
    {
     int x=random.Next(image.Width);
     int y=random.Next(image.Height);
     image.SetPixel(x,y,Color.FromArgb(random.Next()));
    }
    //画图片的边框线
    g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1);
    //保存图片数据
    MemoryStream stream=new MemoryStream();
    image.Save(stream,ImageFormat.Jpeg);
    //输出图片
    containsPage.Response.Clear();
    containsPage.Response.ContentType="image/jpeg";
    containsPage.Response.BinaryWrite(stream.ToArray());
   }
   finally
   {
    g.Dispose();
    image.Dispose();
   }
  }

 }
 // Get_rsOpt(xconn,xTab,xID,xName,xType,xWhere,xDef) 
 // Get_Option(xmid,xfirst,xend,xstep) ;
 // Get_vPath(xLen) Get_fName()
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快别发语音了! | 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;图源千叶的堕天使绅士猫_呜喵0w0&#xff0c;侵权删&#xff09;我们无论遇到什么困难&#xff0c;都不要怕&#xff0c;微笑着面对它&#xff01;消除恐惧的最好方法就是面对恐惧&#xff01;

软件项目管理概览----版本控制

随着软件项目规模的不断扩大&#xff0c;项目管理的作用变得越来越重要。如果一个需要长期维护的项目不能得到很好的管理与控制&#xff0c;“软件腐败”就会发生&#xff0c;用不了多久&#xff0c;我们的程序可能就会像一团拌好的炸酱面一样难以找到头绪&#xff0c;维护的成…

设计模式之原型

原型模式介绍完整拷贝原型模式主要解决的问题就是创建重复对象&#xff0c;而这部分对象内容本身比较复杂&#xff0c;生成过程可能从库或者RPC接口中获取数据的耗时较长&#xff0c;因此采用克隆的方式节省时间。原型模式是一种创建型设计模式&#xff0c;使你能够复制已有对象…

华为服务器停止响应,windows服务器停止工作

windows服务器停止工作 内容精选换一换无法通过远程桌面连接裸金属服务器时&#xff0c;我们推荐您按照以下思路排查问题。检查是否符合登录条件检查网络是否正常检查防火墙配置是否正常远程访问端口配置异常尝试重启裸金属服务器确认是否已经按照裸金属服务器登录前的准备工作…

专题1.1——Exchange2013部署前准备条件

本专题将主要介绍Exchange2013从部署前准备、正式部署到应用配置和维护的整个过程。博文是我在自己做测试的过程中自己编写的&#xff0c;如果大家有什么意见或问题也欢迎一起讨论交流。废话不多说&#xff0c;下面进入正题。本节将主要介绍部署Exchange2013之前需要准备的先决…

Tabs

Tabs控件的功能是在一个页面上显示多个选项卡。由两部分组成&#xff1a;TabContainer和TabPanel.前者表示整个一组选项卡&#xff0c;而后者表示其中的一个选项卡。 属性列表&#xff1a; OnClientActiveTabChanged:单击选项卡标题触发的事件 Height:选项卡的高度 ContentTemp…

这些让人看瞎了的设计!实力证明,数学才是世界的最终boss!

全世界只有3.14 %的人关注了青少年数学之旅昨天小天刷微博&#xff0c;看到了一组动图&#xff0c;一时间我都不知道是我的眼睛出了错&#xff0c;还是我的大脑反应不过来。奇了怪了&#xff01;怎么箭头反转了180后&#xff0c;还是原样&#xff01;问题到底出在哪里&#xff…

你真的了解低代码平台吗?

从 2020 年疫情之后&#xff0c;低代码这个概念就突然变得火热起来&#xff0c;各大自媒体纷纷推出介绍低代码的文章&#xff0c;InfoQ 也曾发表过一篇《为什么我说低代码是“行业毒瘤”&#xff1f;》引发了热议&#xff0c;明道的创始人任向晖随后在自己的公众号写文章《低代…

服务器抽屉式维护,一种服务器用可顺序运动的滑轨

1.一种服务器用可顺序运动的滑轨&#xff0c;包括内轨(1)、中轨(2)和外轨(3)&#xff0c;内轨(1)、中轨 (2)和外轨⑶依次连接&#xff0c;其特征在于&#xff1a;还包括外壳⑷&#xff0c;外壳⑷内设有滑行架(5)&#xff0c;滑行架 (5)与外轨(3)相连接&#xff0c;中轨(2)上设有…

50个常用sql语句

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题&#xff1a; 1、查询“001”课程比“002”课程成绩高的所有学生的学号&#xff1b; select a.S# from (select s#,score from SC where C#001) a,(selec…

无边工作,无际遐想

又是一个胡乱涂鸦&#xff0c;最近很长一段时间我就像临产孕妇样&#xff0c;挣扎在“生产”边缘&#xff0c;每次将手放在键盘上&#xff0c;努力憋出一丝一缕。却就是伸不出个头来。还好&#xff0c;我比孕妇自由&#xff0c;可以停下来休息休息。有句话说的好&#xff1a;生…

图像还可以这样玩!如何用OpenCV处理图像?

全世界只有3.14 % 的人关注了青少年数学之旅人工智能近年来呈现爆发式发展&#xff0c;计算机视觉和深度学习作为人工智能的两大支柱学科&#xff0c;近年来得到迅速发展。今天小天将带着大家走进计算机视觉&#xff01;所谓计算机视觉&#xff0c;就是指用摄影机和电脑代替人眼…

java集合学习笔记 ---Collections类对集合的处理

2019独角兽企业重金招聘Python工程师标准>>> 包名:java.util.CollectionsCollections是个类&#xff0c;不是接口有以下方法&#xff0c;部分列举1.对List进行升序排序public static void sort(List list)如果要进行降序排序,可以在sort函数中制定降序public static…

如何入门.NET Core ? 推荐这10个优秀的开源项目!

.NET 5马上就要发布了&#xff0c;还不知道这些.NET Core开源项目&#xff1f;只推荐干货&#xff01;当然这些开源项目都是个人或组织开发的。1.Ant Design Blazor.NET进行客户端Web开发又一利器。微软官方认可&#xff0c;微软Build2020开发者大会Blazor介绍中&#xff0c;提…

.NET设计模式(7):创建型模式专题总结(Creational Pattern)

概述 创建型模式&#xff0c;就是用来创建对象的模式&#xff0c;抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。本文对五种常用创建型模式进行了比较&#xff0c;通过一个游戏开发场景的例子来说该如何使用创建型模式。 为什么需要创建型模式 所…

南方人第一次见到雪的样子。。。| 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅&#xff08;视频来源沙雕图&#xff0c;侵权删&#xff09;

逆转是怎么发生的?

郑昀玩聚SR 20090527 曾几何时&#xff0c;香港警员的95%都参与了贪腐。当一个一个警员被迫加入行贿受贿行列中时&#xff0c;当其他公共服务机构也参与进来时&#xff0c;当民众不行贿就难以使用公权资源时&#xff0c;看上去似乎整个体系烂透了&#xff0c;无药可救&#xff…

MVVM架构~knockoutjs系列之包括区域级联列表的增删改

返回目录 这个例子我做了几次&#xff0c;之前总是有BUG&#xff0c;目前测试后&#xff0c;确定没有BUG才发上来的&#xff0c;主要功能是实现“我的银行”模块的增删改的功能&#xff0c;这个里面包括了级联列表的区域选择&#xff0c;这部分是难点&#xff0c;在开发过程中&…

ABP Vnext 4.4:统一Ef Core的DbContext/移除EF Core Migrations项目

Abp vnext 4.4出现了一个比较重大的变更&#xff1a;在Startup template中移除了EF Core Migrations项目&#xff0c;本文翻译自community.abp.io/articl由于本文发布的时候Abp vnext的版本还没有到4.4&#xff0c;所以本文演示了如何从4.4以前的版本移除EntityFrameworkCore.D…

史上最变态高考数学题,让99%的考生献上膝盖,看完我惊了......

全世界只有3.14 %的人关注了青少年数学之旅今天超模君想问大家一个问题&#xff1a;如果在撒哈拉大沙漠或者是西伯利亚上建造一个大型装置&#xff0c;以便向地球之外的其他星球的朋友们表明地球上存在有智慧的生命&#xff0c;最适当的装置是什么呢&#xff1f;勾股定理&#…