• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
安安的BLOG
安安目前专注电子商务解决方案^_^
博客园    首页    新随笔    联系   管理    订阅  订阅

以前的文件操作的代码整理

1. 遍列 文件夹下的所有文件 绑定DG上-下载
byte[] data;
  private void Data_Bind()
  {
   string directory=Server.MapPath(".");
   DirectoryInfo dir=new DirectoryInfo(directory);
   DataTable dt=new DataTable();
   dt.Columns.Add("name",typeof(string));
   dt.Columns.Add("len",typeof(string));
   dt.Columns.Add("type",typeof(string));
   DataRow dr;
   foreach(FileInfo fi in dir.GetFiles())
   { 
    dr=dt.NewRow();
    dr["name"]=fi.FullName;
    dr["len"]=fi.Length;
    dr["type"]=fi.Extension;
    dt.Rows.Add(dr);
   }
   DataGrid1.DataSource=dt.DefaultView;
   DataGrid1.DataBind();
  }
  private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
  {
   
   if(e.CommandName=="download")
   {
    string filename=Path.GetFileName(e.Item.Cells[0].Text);
    Response.AppendHeader("content-Disposition","attachment;filename="+Server.UrlEncode(filename));
    Response.ContentType="application/octet-strem";

    FileStream fs=new FileStream(e.Item.Cells[0].Text,FileMode.OpenOrCreate);
    BinaryReader br=new BinaryReader(fs);
    data=br.ReadBytes(int.Parse(e.Item.Cells[1].Text));

    Response.BinaryWrite(data);
    Response.Flush();
    Response.End();

   }
  }

2.  读取 文本文件
   string filename=File1.PostedFile.FileName;
   //string filename=Server.MapPath(".")+"\\test.txt";
   FileStream fs=new FileStream(filename,FileMode.Open);
   StreamReader sr=new StreamReader(fs,Encoding.Default);
//   while(sr.Peek()!=-1)
//   {
//    sb.Append(sr.ReadLine());
//    sb.Append("\n\r");
//   }
   string strtmp="";
   while((strtmp=sr.ReadLine())!=null)
   {
    sb.Append(strtmp);
    sb.Append("\n\r");
   }
   this.TextBox1.Text=sb.ToString();
   sr.Close();
   fs.Close();
3.写文本文件
   string filename=Server.MapPath(".")+"\\test1.txt";
   FileStream fs=new FileStream(filename,FileMode.Create);
   StreamWriter sw=new StreamWriter(fs);
   sw.WriteLine(this.TextBox1.Text);
   sw.Close();
   fs.Close();
4. 上传
   string filename=Path.GetFileName(File1.PostedFile.FileName);
   string newfile=Server.MapPath(".")+"\\"+filename;
   File1.PostedFile.SaveAs(newfile);

5. 图片存储
   string filename=File1.PostedFile.FileName;
   FileInfo fi=new FileInfo(filename);
   FileStream fs=new FileStream(filename,FileMode.OpenOrCreate);
   BinaryReader br=new BinaryReader(fs);
   data=br.ReadBytes((int)fi.Length);  //把一个图片转换成二进制数组

   SqlConnection cnn=new SqlConnection("server=.;uid=sa;database=student;");
   string sql="insert into studentinfo(img) values(@img)";
   SqlCommand cmd=new SqlCommand(sql,cnn);
   
   cmd.Parameters.Add(new SqlParameter("@img",SqlDbType.Image));
   cmd.Parameters["@img"].Value=data;

   cnn.Open();
   cmd.ExecuteNonQuery();
   cmd.Dispose();
   cnn.Close();

6. 转移一个可执行文件
FileInfo fi=new FileInfo("f:\\rdc8.exe");
   long len=fi.Length;

   FileStream fs=new FileStream("f:\\rdc8.exe",FileMode.Open);
   FileStream fs1=new FileStream(Server.MapPath(".")+"\\"+"rdc8.exe",FileMode.Create);

   BinaryReader br=new BinaryReader(fs);
   BinaryWriter bw=new BinaryWriter(fs1);

   data=br.ReadBytes((int)len);
   bw.Write(data);
//
//   br.BaseStream.Seek(0,SeekOrigin.Begin);
//   bw.BaseStream.Seek(0,SeekOrigin.End);
//
//   while(br.BaseStream.Position<br.BaseStream.Length)
//   {
//    bw.Write(br.ReadByte());
//   }

   br.Close();
   bw.Close();
   fs.Close();
   fs1.Close();

7. 照片显示
   string id=Request.QueryString["id"];
   SqlConnection cnn=new SqlConnection("server=.;uid=sa;database=student;pwd=");
   SqlCommand cmd=new SqlCommand("select * from 学生档案 where s_id="+id,cnn);
   cnn.Open();
   SqlDataReader dr=cmd.ExecuteReader();
   if(dr.Read())
   {
    Response.BinaryWrite((byte[])dr["照片"]);
   }

8. 一条包含照片的数据保存到数据库
   string filename=File1.PostedFile.FileName;
   FileInfo fi=new FileInfo(filename);
   FileStream fs=new FileStream(filename,FileMode.OpenOrCreate);
   BinaryReader br=new BinaryReader(fs);
   data=br.ReadBytes((int)fi.Length);  //把一个图片转换成二进制数组

   string XH="007";
   string XM="w";
   string XB="s";
   string BJ="21";

   SqlConnection cnn=new SqlConnection("server=.;uid=sa;database=student;pwd=");
   string sql="insert into 学生档案(学号,姓名,性别,班级,照片) values(@XH,@XM,@XB,@BJ,@img)";
   SqlCommand cmd=new SqlCommand(sql,cnn);
   
   cmd.Parameters.Add(new SqlParameter("@img",SqlDbType.Image));
   cmd.Parameters.Add(new SqlParameter("@XH",SqlDbType.VarChar));
   cmd.Parameters.Add(new SqlParameter("@XM",SqlDbType.VarChar));
   cmd.Parameters.Add(new SqlParameter("@XB",SqlDbType.Char));
   cmd.Parameters.Add(new SqlParameter("@BJ",SqlDbType.VarChar));

   cmd.Parameters["@img"].Value=data;
   cmd.Parameters["@XH"].Value=XH;
   cmd.Parameters["@XM"].Value=XM;
   cmd.Parameters["@XB"].Value=XB;
   cmd.Parameters["@BJ"].Value=BJ;

   cnn.Open();
   cmd.ExecuteNonQuery();
   cmd.Dispose();
   cnn.Close();
   fs.Close();
   br.Close();

9. 生成验证码的页面
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   string str = getRandom();
   Session.Clear();
   Session["YzPwd"] = str;
   Random rd = new Random(unchecked((int)DateTime.Now.Ticks));   
   Bitmap image=new Bitmap(42,16);
   Graphics g=Graphics.FromImage(image);
   g.Clear(Color.FromArgb(200,200,200));
   g.DrawString(str,new Font("Times New Roman", 13 ,FontStyle.Bold),new SolidBrush(Color.Blue),0,0);
    g.DrawLine(new Pen(Color.Black,1),new Point(rd.Next(1,20),rd.Next(0,19)),new Point(rd.Next(40,52),rd.Next(0,19)));
    g.DrawLine(new Pen(Color.Black,1),new Point(rd.Next(1,20),rd.Next(0,19)),new Point(rd.Next(40,52),rd.Next(0,19)));
   image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
  }

  private string getRandom()
  {
   //unchecked 关键字用于控制整型算术运算和转换的溢出检查上下文
   Random ra = new Random(unchecked((int)DateTime.Now.Ticks));
   //刻度数 Ticks 为自 0001 年 1 月 1 日午夜 12:00 以来所经过时间以 100 毫微秒为间隔表示时的数字
   //当前时间的刻度数来为依据(种子)随机生成数字
   return ra.Next(1000,9999).ToString();  //Next方法 返回 最小数1000 最大数9999 之间的一个随机数

  }

posted @ 2006-05-22 22:36  安安  阅读(507)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3