A veces, las imágenes o archivos deben almacenarse en la base de datos debido a ciertas necesidades (como la seguridad). Por supuesto, en general, especialmente cuando los archivos son relativamente grandes, muchas personas no recomiendan almacenar archivos en formato binario en la base de datos. El acceso a los archivos en el archivo se organiza de la siguiente manera (la idea es la misma que el acceso en SQL Server2000. Al almacenar, el flujo de bytes binarios de la imagen o archivo se almacena en los datos. Al leer, el campo correspondiente en el La base de datos se lee en los datos del byte y luego se genera):
1. Cree una tabla de base de datos en TOAD o SQLPlus.
1CREAR TABLA TEST_TABLE
2(
3 ID VARCHAR2 (36 BYTES),
4 NOMBRE VARCHAR2(50 BYTE),
5 MANCHAS DE FOTOS
6)
7
2. Cree una nueva página ASPX, coloque un control FileUpload en la página, asígnele el nombre fileUp y coloque dos botones llamados btnSave (guardar) y btnRead (leer).
3. Ejecute el siguiente código en el evento btnSave para guardar imágenes o archivos:
Guardar imágenes (archivos) en Oracle
1StringBuilder sbSQL = new StringBuilder("insertar en Test_Table(ID,Nombre,Foto) valores(:ID,:Nombre,:Foto)");
2 OracleConnection cn = nueva 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(":Nombre", OracleType.VarChar, 50).Value = fileUp.FileName;
7 int intLen = fileUp.PostedFile.ContentLength;
8 bytes[] pic = nuevo byte[intLen];
9 fileUp.PostedFile.InputStream.Read(imagen, 0, intLen);
10 cmd.Parameters.Add(":Foto", OracleType.Blob).Value = pic;
11 intento
12 {
13 cn.Abrir();
14 cmd.ExecuteNonQuery();
15}
16 capturas (Excepción ex)
17 {
18 Respuesta.Escribir(ex.Mensaje);
19}
20 finalmente
veintiuno {
22 cn.Cerrar();
veintitrés }
24
4. El método de lectura es el siguiente:
Leer imágenes (archivos) de Oracle
1OracleConnection cn = nueva OracleConnection(strCn);
2OracleCommand cmd = cn.CreateCommand();
3cmd.CommandText = "seleccionar foto de test_table";
4 intento
5{
6 cn.Abrir();
7 Flujo de MemoryStream = nuevo MemoryStream();
8 Lector IDataReader = cmd.ExecuteReader();
9 si (lector.Read())
10 {
11 byte[] imagen = (byte[])lector[0];
12 //byte[] pic = (byte[])cmd.ExecuteScalar();
13 flujo.Escribir(imagen, 0, imagen.Longitud);
14 //Mapa de bits mapa de bits = nuevo mapa de bits(flujo);
15 //Response.ContentType = "imagen/Jpeg";
16 //bitMap.Save(Response.OutputStream, ImageFormat.Jpeg);
17 // La parte de comentarios puede mostrar la imagen en IE en lugar de descargarla.
18 //El siguiente método descarga el archivo directamente
19 Response.ContentType = "aplicación/flujo de octeto";
20 Response.AddHeader ("Disposición de contenido", "adjunto; Nombre de archivo = demo.JPG");
21 Respuesta.BinaryWrite(imagen);
22 Respuesta.End();
veintitrés }
veinticuatro
25}
26catch (excepción ex)
27{
28 Respuesta.Escribir(ex.Mensaje);
29}
30finalmente
31{
32 cn.Cerrar();
33}
34
http://www.cnblogs.com/weiweictgu/archive/2006/11/17/563761.html