在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先在Access中建立一个表结构为: 字段名 字段类型 说明
aspx 页面主要代码
<form id="form1" runat="server"> <div> <asp:FileUpload ID="FileUpload1" runat="server" Width="345px" /> <asp:Button ID="Button1" runat="server" Text="上传到数据库" onclick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="读取数据库到文件" onclick="Button2_Click" /><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </div> </form>
Cs文件代码
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=admin;Data Source=D:\\WEB\\MyVs2008\\MyVs2008\\App_Data\\supervod.mdb"); protected void Button1_Click(object sender, EventArgs e) { if (!IsValid) return; if (FileUpload1.PostedFile.FileName != "") { int datalength = this.FileUpload1.PostedFile.ContentLength; //获取上传文件大小 byte[] databuffer = new byte[datalength]; //建立文件字节数组,缓存空间 System.IO.Stream objstream = this.FileUpload1.PostedFile.InputStream; objstream.Read(databuffer, 0, datalength); string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); cmd.Connection = conn; cmd.CommandText = "insert into img(imgtype,imgdata) values(@imgtype,@imgdata)"; cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@imgtype", System.Data.OleDb.OleDbType.VarChar)).Value = ext; cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@imgdata", System.Data.OleDb.OleDbType.Binary)).Value = databuffer; conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } } protected void Button2_Click(object sender, EventArgs e) { System.Data.OleDb.OleDbDataReader dr = null; System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(); byte[] FileData=null; string type=""; cmd.CommandText = "select imgdata,imgtype from img where id=@ID"; cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("@ID", System.Data.OleDb.OleDbType.Integer)).Value = TextBox1.Text.Trim(); cmd.Connection = conn; conn.Open(); dr = cmd.ExecuteReader(); if (dr.Read()) { FileData = (byte[])dr["imgdata"]; type=dr["imgtype"].ToString(); } dr.Close(); conn.Close(); System.IO.FileStream fs = new System.IO.FileStream("d:\\aaa" + type, System.IO.FileMode.Create); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs); bw.Write(FileData, 0, FileData.Length); bw.Close(); }
代码很简单,这里只做了一个演示,保存文件名为固定名称,其实可以在数据库里加入一个文件名了字段,这样就可以解决
|
请发表评论