• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.Net上传文件到Access数据中,并从数据库中读取文件并保存

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

首先在Access中建立一个表结构为:
表名:img

字段名             字段类型              说明
ID                    自动编号              系统分配ID值
Imgtype           文本                     上传文件类型
imgdata          OLE对象                上传文件数据

 

 

 

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();
        }

 

代码很简单,这里只做了一个演示,保存文件名为固定名称,其实可以在数据库里加入一个文件名了字段,这样就可以解决

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap