Terkadang gambar atau file harus disimpan dalam database karena kebutuhan tertentu (seperti keamanan). Tentu saja, secara umum, terutama ketika file berukuran relatif besar, banyak orang tidak menganjurkan menyimpan file dalam bentuk biner di database Akses ke file dalam file diatur sebagai berikut (idenya sama dengan akses di SQL Server2000. Saat menyimpan, aliran byte biner dari gambar atau file disimpan dalam data. Saat membaca, bidang yang sesuai di file database dibaca ke dalam data byte, dan kemudian dikeluarkan):
1. Buat tabel database di TOAD atau SQLPlus.
1BUAT TABEL TEST_TABLE
2(
3 ID VARCHAR2(36 BYTE),
4 NAMA VARCHAR2(50 BYTE),
5 GLOB FOTO
6)
7
2. Buat halaman ASPX baru, letakkan kontrol FileUpload pada halaman tersebut, beri nama fileUp, dan tempatkan dua tombol bernama btnSave (simpan) dan btnRead (baca).
3. Jalankan kode berikut di event btnSave untuk menyimpan gambar atau file:
Simpan gambar (file) ke Oracle
1StringBuilder sbSQL = new StringBuilder("masukkan ke dalam Test_Table(ID,Nama,Foto) nilai(:ID,:Nama,:Foto)");
2 OracleConnection cn = OracleConnection baru(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(":Nama", OracleType.VarChar, 50).Value = fileUp.FileName;
7 int intLen = fileUp.PostedFile.ContentLength;
8 byte[] gambar = byte baru[intLen];
9 fileUp.PostedFile.InputStream.Read(gambar, 0, intLen);
10 cmd.Parameters.Add(":Foto", OracleType.Blob).Value = pic;
11 mencoba
12 {
13 cn.Buka();
14 cmd.ExecuteNonQuery();
15}
16 tangkapan (Pengecualian ex)
17 {
18 Respon.Tulis(mis.Pesan);
19}
20 akhirnya
dua puluh satu {
22 cn.Tutup();
dua puluh tiga }
24
4. Cara membacanya sebagai berikut:
Baca gambar (file) dari Oracle
1OracleConnection cn = OracleConnection baru(strCn);
2OracleCommand cmd = cn.CreateCommand();
3cmd.CommandText = "pilih foto dari test_table";
4 coba
5{
6 cn.Buka();
7 Aliran MemoryStream = MemoryStream baru();
8 Pembaca IDataReader = cmd.ExecuteReader();
9 jika (pembaca.Baca())
10 {
11 byte[] pic = (byte[])pembaca[0];
12 //byte[] pic = (byte[])cmd.ExecuteScalar();
13 aliran.Tulis(gambar, 0, gambar.Panjang);
14 //Bitmap bitMap = Bitmap baru(aliran);
15 //Respon.ContentType = "gambar/Jpeg";
16 //bitMap.Save(Respon.OutputStream, ImageFormat.Jpeg);
17 //Bagian komentar dapat menampilkan gambar di IE alih-alih mendownload gambar.
18 //Metode berikut mendownload file secara langsung
19 Response.ContentType = "aplikasi/aliran oktet";
20 Response.AddHeader("Disposisi Konten", "lampiran;NamaFile= demo.JPG");
21 Respon.BinaryWrite(gambar);
22 Respon.End();
dua puluh tiga }
dua puluh empat
25}
26catch (Pengecualian ex)
27{
28 Respon.Tulis(mis.Pesan);
29}
30 akhirnya
31{
32 cn.Tutup();
33}
34
http://www.cnblogs.com/weiweictgu/archive/2006/11/17/563761.html