|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如Java改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。asp.net|oracle偶然因为某种必要(如平安性)须将图片或文件寄存在数据库中,固然一样平常情形下出格是文件对照年夜的时分良多人不倡始将文件以二进制的情势寄存在数据库中的,现将Oracle中文件的存取收拾以下(思绪和在SQLServer2000中存取一样,存储时在数据中寄存图片或文件的二进制字撙节,读出时将数据库中对应字段读取到字节数据,然后输入):
1、在TOAD或SQLPlus中创立一下数据库表。
1CREATETABLETEST_TABLE
2(
3IDVARCHAR2(36BYTE),
4NAMEVARCHAR2(50BYTE),
5PHOTOBLOB
6)
7
2、新建一个ASPX页面,在页面上放一个FileUpload控件,定名为fileUp,安排两个按钮散布为btnSave(保留),btnRead(读取)。
3、在btnSave的事务中实行一下代码,用来保留图片或文件:
保留图片(文件)到Oracle
1StringBuildersbSQL=newStringBuilder("insertintoTest_Table(ID,Name,Photo)values(:ID,:Name,:Photo)");
2OracleConnectioncn=newOracleConnection(strCn);
3OracleCommandcmd=cn.CreateCommand();
4cmd.CommandText=sbSQL.ToString();
5cmd.Parameters.Add(":ID",OracleType.VarChar,36).Value=Guid.NewGuid().ToString();
6cmd.Parameters.Add(":Name",OracleType.VarChar,50).Value=fileUp.FileName;;
7intintLen=fileUp.PostedFile.ContentLength;
8byte[]pic=newbyte[intLen];
9fileUp.PostedFile.InputStream.Read(pic,0,intLen);
10cmd.Parameters.Add(":Photo",OracleType.Blob).Value=pic;
11try
12{
13cn.Open();
14cmd.ExecuteNonQuery();
15}
16catch(Exceptionex)
17{
18Response.Write(ex.Message);
19}
20finally
21{
22cn.Close();
23}
24
4、读取办法以下:
从Oracle中读取图片(文件)
1OracleConnectioncn=newOracleConnection(strCn);
2OracleCommandcmd=cn.CreateCommand();
3cmd.CommandText="selectphotofromtest_table";
4try
5{
6cn.Open();
7MemoryStreamstream=newMemoryStream();
8IDataReaderreader=cmd.ExecuteReader();
9if(reader.Read())
10{
11byte[]pic=(byte[])reader[0];
12//byte[]pic=(byte[])cmd.ExecuteScalar();
13stream.Write(pic,0,pic.Length);
14//BitmapbitMap=newBitmap(stream);
15//Response.ContentType="image/Jpeg";
16//bitMap.Save(Response.OutputStream,ImageFormat.Jpeg);
17//正文部分能够将图片显现在IE中,而不是下载图片,
18//上面的办法间接下载文件
19Response.ContentType="application/octet-stream";
20Response.AddHeader("Content-Disposition","attachment;FileName=demo.JPG");
21Response.BinaryWrite(pic);
22Response.End();
23}
24
25}
26catch(Exceptionex)
27{
28Response.Write(ex.Message);
29}
30finally
31{
32cn.Close();
33}
34
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。 |
|