ASP.NET中文件操作
System.IO
•Directory :用于创建、移动和枚举通过
目录和子目录
•File :用于创建、复制、删除、移动和打
开文件
•Path:对包含文件或目录路径信息的
String 实例执行操作
•StreamReader、StreamWriter:以一种
特定的编码读写字符

 

//上传文件

using System.IO;

 protected System.Web.UI.HtmlControls.HtmlInputFile loFile;

//得到用户要上传的文件名
   string strFilePathName = loFile.PostedFile.FileName;
   string strFileName = Path.GetFileName(strFilePathName);
   //以下创建服务器路径
   string strServerPath;
   if(tbPath.Text=="")
    strServerPath = "C:\\";
   else
    strServerPath = tbPath.Text;
   if(!Directory.Exists(strServerPath))
    Directory.CreateDirectory(strServerPath);
   //上传文件
   loFile.PostedFile.SaveAs(strServerPath+"\\"+strFileName);
   //保存文件名,文件类型,文件大小
   Session["FileName"] = strFileName;
   Session["FileType"] = loFile.PostedFile.ContentType;
   Session["FileLength"] = loFile.PostedFile.ContentLength;

StreamWriter sw = new StreamWriter("c:\\FileInfo.txt");
   sw.WriteLine("文件类型:"+lbFiletype.Text);
   sw.WriteLine("文件大小:"+lbFilesize.Text);
   sw.WriteLine("文件名称:"+lbFilename.Text);
   sw.Close();
   

//查找文件

private void btnFind_Click(object sender, System.EventArgs e)
  {
   try
   {
    if(tbInput.Text.Trim()=="")
    {
     lbPath.Text = "不存在此文件!";
     return;
    }
    string[] drives = System.IO.Directory.GetLogicalDrives();

    foreach (string str in drives)
    {
     
     if(ProcessDirectory(str))
      break;
    }
    if(!bExist)
     lbPath.Text = "不存在此文件!";
   }
   catch (System.IO.IOException)
   {
    Response.Write("I/O错误!");
   }
   catch (System.Security.SecurityException)
   {
    Response.Write("没有访问权限!");
   }

  }
  public bool  ProcessDirectory(string targetDirectory)
  {
   //try
   {
    // Process the list of files found in the directory
    string [] fileEntries = Directory.GetFiles(targetDirectory);
    foreach(string fileName in fileEntries)
    {
     if(ProcessFile(fileName))
      return true;
     
    }

    // Recurse into subdirectories of this directory
    string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
    foreach(string subdirectory in subdirectoryEntries)
    {
     if(ProcessDirectory(subdirectory))
      return true;
    }
    return false;
   }
   //catch(Exception)
   //{
   // return false;
   //}
  }
  public bool ProcessFile(string strFileName)
  {
   if(Path.GetFileName(strFileName).ToLower()==tbInput.Text.Trim().ToLower())
   {
    lbPath.Text = strFileName.ToLower();
    bExist=true;
    return true;
   }
   else
    return false;
  }

ASP.NET中图形的操作
System.Drawing:命名空间提供了对
GDI+ 基本图形功能的访问
•Graphics 类:最重要的类,通过它实现图形的绘
制。
•Pen、Brush:绘图的工具
•Point、Rectangle、Region、Size、Font:辅助
绘图单位。
•通过Bitmap转化为图像,显示在页面上。

private void Page_Load(object sender, System.EventArgs e)
  {
   Bitmap b = new Bitmap(600,600);
   Graphics g = Graphics.FromImage(b);//GDI+中最重要的类
   g.Clear(Color.Red);
   Pen p = new Pen(Color.Green,3.0f);//铅笔
   g.DrawLine(p,0,0,600,600);
   g.DrawLine(p,600,0,0,600);
   g.DrawEllipse(p,0,0,100,100);
   SolidBrush sb = new SolidBrush(Color.Blue);//固体刷
   g.FillEllipse(sb,100,100,200,200);
   g.FillRectangle(sb,300,300,100,100);
   Font f = new Font("宋体",40);//字体
   g.DrawString("哈哈,不错!",f,sb,0,300);
   Point[] arrP = new Point[5];//point为基本的点
   arrP[0] = new Point(200,200);
   arrP[1] = new Point(200,400);
   arrP[2] = new Point(500,400);
   arrP[3] = new Point(500,600);
   arrP[4] = new Point(300,600);
   g.DrawPolygon(p,arrP);
   b.Save(Response.OutputStream,ImageFormat.Gif);

  }

//上传图片

  protected System.Web.UI.HtmlControls.HtmlInputFile InputFile;

private void btnLoad_Click(object sender, System.EventArgs e)
  {
   ImageShow.ImageUrl = InputFile.PostedFile.FileName;
  }

  private void btnConvert_Click(object sender, System.EventArgs e)
  {
   string strFilePathName = ImageShow.ImageUrl;
   System.Drawing.Image i = System.Drawing.Image.FromFile(strFilePathName);
  
   //以下得到在服务器上保存的文件路径名称
   string strFileName = Path.GetFileNameWithoutExtension(strFilePathName);
   ImageFormat f = ImageFormat.Bmp;
   switch(ddlFormat.SelectedItem.Text.ToLower())//toLower为转换为小写
   {
    case "bmp":
     break;
    case "jpeg":
     f = ImageFormat.Jpeg;
     break;
    case "gif":
     f = ImageFormat.Gif;
     break;
    case "png":
     f = ImageFormat.Png;
     break;
    case "tiff":
     f = ImageFormat.Tiff;
     break;
   }
   string strSeverPath=tbPath.Text+"\\"+strFileName+"."+
    ddlFormat.SelectedItem.Text;
   i.Save(strSeverPath,f);
  }

 

System.Drawing.Imaging :命名空间提供
高级GDI+ 图像处理功能


  private void btnLoad_Click(object sender, System.EventArgs e)
  {

   Session["Path"] = InputFile.PostedFile.FileName;

  }

  private void btnAdd_Click(object sender, System.EventArgs e)
  {
   Session["Add"] = true;
  }

  private void BtnRotateFlip_Click(object sender, System.EventArgs e)
  {
   Session["RotateFlip"] = true;
  }

  private void btnEx_Click(object sender, System.EventArgs e)
  {
   Session["Exp"] = true;
  }

  private void btnCut_Click(object sender, System.EventArgs e)
  {
   Session["Cut"] = true;
  }

private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if(Session["Path"]!=null)
   {
//    Response.Clear();
//    Response.Write("<br>");
//    Response.Write("<br>");
    System.Drawing.Image g=System.Drawing.Image.FromFile(Session["Path"].ToString());
    System.Drawing.Imaging.ImageFormat f=g.RawFormat;
    Bitmap b=new Bitmap(g);
    if(Session["RotateFlip"]!=null)
     b.RotateFlip(RotateFlipType.Rotate90FlipNone);

    Graphics gh=Graphics.FromImage(b);
    if(Session["Add"]!=null)
     gh.DrawString("MSDN荣誉出品",new Font("宋体",50),Brushes.Red ,5,b.Height-100);
    //    拉伸图片
    if(Session["Exp"]!=null)
    {
     gh.Clear(Color.White);
     gh.DrawImage(g,new Rectangle(10,10,50,50),new Rectangle(0,0,g.Width,g.Height),GraphicsUnit.Pixel);//17
    }
    //"切割图片
    if(Session["Cut"]!=null)
    {
     gh.Clear(Color.White);
     gh.DrawImage(g,50,100,new Rectangle(80,80,410,410),GraphicsUnit.Pixel); //19
    }
 
    gh.SmoothingMode=SmoothingMode.AntiAlias;
    b.Save(Response.OutputStream,f);                        
    gh.Dispose();
    b.Dispose();
    g.Dispose();
    Session["RotateFlip"]=null;
    Session["Cut"]=null;
    Session["Exp"]=null;
    Session["Exp"]=null;
    Session["Cut"]=null;

   }

密码加密
1. 无论什么时候只要我们使用数据库开发网站,
我们就必须保护用户资料,这非常必要。
2. 黑客可以盗窃口令,个人隐私遭到严重的破坏。
最好的方法就是不储存原始密码,而是加密后
再放到数据库中。
3. 当我们想验证用户时,我们只需将用户输入的
口令再次加密与数据库中的记录进行比较即可。
4. 在asp中我们需要额外的对象加密。
5. 但在asp.net中SDK可以通过
System.Web.Security.FormsAuthentication类

private void Page_Load(object sender, System.EventArgs e)
  {
   if(File.Exists("c:\\user.ini"))
    lbMessage.Text = "用户登录";
   else
    lbMessage.Text = "用户注册";
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void btnLogin_Click(object sender, System.EventArgs e)
  {
   if(!File.Exists("c:\\user.ini"))
   {
    StreamWriter sw = new StreamWriter("c:\\user.ini");
    string strName = tbName.Text;
    string strPass = tbPass.Text;
    string strEncryPass = System.Web.Security.FormsAuthentication.
     HashPasswordForStoringInConfigFile(strPass,"md5");
    sw.WriteLine(strName);
    sw.WriteLine(strEncryPass);
    sw.Close();
   }
   else
   {
    //从user.ini中读出保存的用户名称和密码,进行比较
    StreamReader sr = new StreamReader("c:\\user.ini");
    string strSaveName = sr.ReadLine();
    string strSavePass = sr.ReadLine();
    sr.Close();
    string strInputPass = System.Web.Security.FormsAuthentication
     .HashPasswordForStoringInConfigFile(tbPass.Text,"md5");
    if(strSaveName!=tbName.Text||strSavePass!=strInputPass)
    {
     Response.Write("用户名称或密码错误!");
     mainPanel.Visible = false;
    }
    else
     Response.Write("<script language = javascript>alert('成功登录!')</script>");
   }
  }

posted on 2006-05-30 09:20  公木子  阅读(495)  评论(0编辑  收藏  举报