用ASP.NET 2.0在Oracle中存取图片(文件)的操作
2010-10-21文字大小:大中小
有时由于某种须要(如安全性)须将图片或文件存放在数据库中,当然通常情况下特别是文件比较大的时刻许多人不提倡将文件以二进制的形式存放在数据库中的,现将Oracle中文件的存取整理如下(思路和在SQL Server2000中存取一样,存储时在数据中存放图片或文件的二进制字节流,读出时将数据库中对应字段读取到字节数据,然后输出): 1、在TOAD或SQLPlus中建立一下数据库表。
1CREATE TABLE TEST_TABLE2(3 ID VARCHAR2(36 BYTE),4 NAME VARCHAR2(50 BYTE),5 PHOTO BLOB6)7
2、新建一个ASPX页面,在页面上放一个FileUpload控件,命名为fileUp,放置两个按钮分布为btnSave(保存),btnRead(读取)。3、在btnSave的事件中执行一下代码,用来保存图片或文件:
保存图片(文件)到Oracle 1StringBuilder sbSQL = new StringBuilder("insert into Test_Table(ID,Name,Photo) values(:ID,:Name,:Photo)"); 2 OracleConnection cn = new OracleConnection(strCn); 3 OracleCommand cmd = cn.CreateCommand(); 4 cmd.CommandText = sbSQL.ToString(); 5 cmd.Parameters.Add(":ID", OracleType.VarChar, 36).Value = Guid.NewGuid().ToString(); 6 cmd.Parameters.Add(":Name", OracleType.VarChar, 50).Value = fileUp.FileName; ; 7 int intLen = fileUp.PostedFile.ContentLength; 8 byte[] pic = new byte[intLen]; 9 fileUp.PostedFile.InputStream.Read(pic, 0, intLen);10 cmd.Parameters.Add(":Photo", OracleType.Blob).Value = pic;11 try12 {13 cn.Open();14 cmd.ExecuteNonQuery();15 }16 catch (Exception ex)17 {18 Response.Write(ex.Message);19 }20 finally21 {22 cn.Close();23 }24