国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

用ASP.NET 2.0在Oracle中存取圖片(文件)的操作

2024-07-10 13:09:15
字體:
來源:轉載
供稿:網友

有時由于某種需要(如安全性)須將圖片或文件存放在數據庫中,當然一般情況下特別是文件比較大的時候很多人不提倡將文件以二進制的形式存放在數據庫中的,現將oracle中文件的存取整理如下(思路和在sql server2000中存取一樣,存儲時在數據中存放圖片或文件的二進制字節流,讀出時將數據庫中對應字段讀取到字節數據,然后輸出):
       1、在toad或sqlplus中創建一下數據庫表。


1create table test_table
2(
3  id     varchar2(36 byte),
4  name   varchar2(50 byte),
5  photo  blob
6)
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        try
12        {
13            cn.open();
14            cmd.executenonquery();
15        }
16        catch (exception ex)
17        {
18            response.write(ex.message);
19        }
20        finally
21        {
22            cn.close();
23        }
24

  4、讀取方法如下:


從oracle中讀取圖片(文件)
 1oracleconnection cn = new oracleconnection(strcn);
 2oraclecommand cmd = cn.createcommand();
 3cmd.commandtext = "select photo from test_table";
 4try
 5{
 6    cn.open();
 7    memorystream stream = new memorystream();
 8    idatareader reader = cmd.executereader();
 9    if (reader.read())
10    {
11        byte[] pic = (byte[])reader[0];
12        //byte[] pic = (byte[])cmd.executescalar();
13        stream.write(pic, 0, pic.length);
14        //bitmap bitmap = new bitmap(stream);
15        //response.contenttype = "image/jpeg";
16        //bitmap.save(response.outputstream, imageformat.jpeg);
17        //注釋部分可以將圖片顯示在ie中,而不是下載圖片,
18        //下面的方法直接下載文件 
19        response.contenttype = "application/octet-stream";
20        response.addheader("content-disposition", "attachment;filename= demo.jpg");
21        response.binarywrite(pic);
22        response.end();
23    }
24
25}
26catch (exception ex)
27{
28    response.write(ex.message);
29}
30finally
31{
32    cn.close();
33}
34

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金塔县| 吉隆县| 禄丰县| 宁武县| 新河县| 原阳县| 邯郸县| 平塘县| 樟树市| 洮南市| 宁都县| 武鸣县| 灵台县| 颍上县| 孝昌县| 剑川县| 乌什县| 金阳县| 漳平市| 齐齐哈尔市| 民乐县| 余干县| 阿坝县| 苗栗县| 嵊州市| 化州市| 遵义县| 温泉县| 视频| 镇宁| 丹棱县| 花垣县| 上饶县| 三江| 罗田县| 云南省| 夹江县| 镇雄县| 贡山| 古丈县| 尉氏县|