博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net上传文件到Access数据中,并从数据库中读取文件并保存
阅读量:6974 次
发布时间:2019-06-27

本文共 2518 字,大约阅读时间需要 8 分钟。

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

 

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

 

转载地址:http://pzrsl.baihongyu.com/

你可能感兴趣的文章
2015年高交会又有什么值得期待的黑科技?
查看>>
VS2010 asp.net development server 无法展示svg图片
查看>>
不容忽视的医疗数据泄露问题,或许能用区块链来解决
查看>>
有了雀巢智能咖啡机,单身狗离“秀恩爱”还会远吗?
查看>>
「镁客·请讲」1058VR钱朱平:VR泛娱乐的时代未到,不妨从更细分的行业切入
查看>>
Mac休眠之后唤醒时无法使用鼠标
查看>>
《Web Hacking 101》中的链接整理
查看>>
刷新本地的DNS缓存数据
查看>>
AI、量子计算引爆硬科技创新,雷鸣、王海峰、施尧耘等北大120周年论道信科最前沿...
查看>>
逆天了!这个新型穿戴设备除了自愈,还能借由体热获取能量
查看>>
Ant、Gradle、Python三种打包方式的介绍
查看>>
为什么物联网和区块链彼此依赖?
查看>>
Linux查找某个时间点后生成的文件(转)
查看>>
C++:STL常用函数模块总结(算法algorithm)
查看>>
CES Asia专题|从系统到整车,自动驾驶成唯一亮点
查看>>
中国量子技术创造多个世界第一,又创造世界首个
查看>>
pytorch-0.2成功调用GPU:ubuntu16.04,Nvidia驱动安装以及最新cuda9.0与cudnnV7.0配置
查看>>
6Python全站之路系列之Django站点管理
查看>>
bootstrap-进度条--动态条纹进度条
查看>>
事务xmin,xmax
查看>>