Red de conocimiento informático - Computadora portátil - ¿Cómo muestra ASP los tipos de objetos OLE en ACCESS?

¿Cómo muestra ASP los tipos de objetos OLE en ACCESS?

¿Cómo leer imágenes de la base de datos ACCESS?

1. Formato gráfico en la base de datos ACCESS

Cuando el navegador encuentra

tipo de contenido de respuesta = "imagen/gif"

Pero. Esto generará otro problema, es decir, solo podemos mostrar imágenes en formato gif, o las cosas almacenadas en la base de datos solo pueden estar en formato gif. Pero algunas bases de datos se guardan en formato gif, otras en formato jpeg y otras incluso en modo OLE. Por tanto, debemos establecer el tipo de contenido de la respuesta según el formato de los gráficos.

Tenga en cuenta que también puede crear nuevos objetos de mapa de bits a partir de archivos, pero los navegadores no reconocerán los formatos de gráficos guardados en la base de datos de esta manera. Cuando guarda una imagen en una base de datos, debe saber qué formato necesita usar para guardarla. Puede guardar cada byte del archivo o guardar la imagen en formato OLE a través de ACCESS.

El formato que utilizas para guardar la imagen determina el formato que utilizas para leer el gráfico en ASP. Específicamente, si guarda gráficos como bmp, gif o jpeg en ACCESS (esto debe hacerse usando el objeto OLE de ACCESS, es decir, usando el cuadro de diálogo insertar objeto de ACCESS), esto es algo que el navegador no puede interpretar cuando usa Imagen/bmp.

Ahora supongamos que los formatos de gráficos que desea están almacenados en la base de datos (GIF, JPEG, BMP, TIFF, etc.). Ahora veamos cómo leerlos desde la base de datos. ACCESS utiliza dos tecnologías clave para guardar gráficos:

1. Utilice el formato bmp.

Encabezado de archivo de 2,78 bytes

lt

Respuesta. Caducado = 0

Respuesta. buffer=Verdadero

Respuesta. clear

response . content type = " image/BMP "

gt

Entonces todo lo que tienes que hacer es eliminar el encabezado del archivo del objeto OLE de 78 bytes.

lt

Const OLEHEADERSIZE = 78

nFieldSize = rs("foto"). tamaño real

oleHeader = rs("foto"). GetChunk(OLEHEADERSIZE)

imageBytes = rs("foto "). GetChunk(nFieldSize-OLEHEADERSIZE)

Respuesta. Escritura binaria de bytes de imagen

gt

Ahora, por ejemplo:

Si desea obtener información sobre un empleado, esta información incluye una introducción y su imagen. . Y muestra texto y gráficos simultáneamente. El código es el siguiente: (mg es una página proxy)

theImg.asp

lt

respuesta. Caducado = 0

Respuesta. buffer=Verdadero

Respuesta. Borrar

tipo de contenido de respuesta = Sesión(" ImageType ")

Respuesta. Sesión de escritura binaria("ImageBytes")

Sesión("ImageType") = " "

Sesión("ImageBytes") = " "

responder.

Fin

gt

Función SetImageForDisplay(campo, tipo de contenido)

OLEHEADERSIZE = 78

contentType = LCase(contentType)

Seleccione el tipo de contenido del caso

Caso "gif", "jpeg", "bmp"

tipo de contenido = "imagen/" y tipo de contenido

bytes = campo.valor

Caso "ole"

contentType = "imagen/bmp"

nFieldSize = campo. tamaño real

oleHeader = campo. GetChunk(OLEHEADERSIZE)

bytes = campo. GetChunk(nFieldSize-OLEHEADERSIZE)

Finalizar selección

Sesión(" imageBytes") = bytes

sesión(" imageType ") = tipo de contenido

Finalizar función

Tenga en cuenta que solo se utilizan cuatro formatos en el programa: gif, jpeg, bmp y ole.

lt

sql = "seleccionar * de Empleados "

establecer oRS = servidor. CreateObject("ADODB.RecordSet")

oRS. UbicaciónCursor = 3

oRS. Abra sql, "DSN=NW"

SetImageForDisplay oRS("photo"), "ole"

Establezca oRS. ActiveConnection = None

gt

Si quieres mostrar una imagen, solo necesitas hacerlo en otro asp, digamos getEmpInfo.asp.

ltimg src = " the img . ASP " lt;/img gt; Pero todavía hay un problema, porque los gráficos de cada empleado utilizan el mismo archivo "theImg.asp", que debe ser ligeramente modificado :

ltimg src="theImg.asp?temp=lt=request.Form("empLastName")>lt/img gt;

Finalmente, cómo mostrar múltiples imágenes. ? Además, ¿qué debo hacer si hay varios campos en la base de datos que guardan gráficos? De hecho, la solución es muy simple, simplemente agregue otro parámetro a SetImageForDisplay, que es una variable de sesión para guardar gráficos. :

SetImageForDisplay o s1(" photo "), " ole ", " empPhoto "

SetImageForDisplay o RS2("logo"), "gif", " compLogo "

ltimg src=" theImg2.asp? varName = empPhoto amptemp = lt=request. Form("empLastName") > gt

ltimg src="theImg2.asp?varName = compLogo amptemp = lt=request.

Form("imgCode") > gt

Utilizando este método, se pueden completar las siguientes funciones:

1. Los campos gráficos se pueden recuperar de la base de datos. Lo único que necesita saber es en qué formato bmp están los gráficos de la base de datos. gif? ¿jpg? ¿viejo? )

2. La variable de sesión se utiliza para guardar el número de bytes de gráficos e información vinculados al tipo de contenido asp

3. Se pueden visualizar imágenes.