Foros del Web » Programando para Internet » ASP Clásico »

Intercambio de imagenes

Estas en el tema de Intercambio de imagenes en el foro de ASP Clásico en Foros del Web. La siguiente lógica sirve para obtener el contenido una imagen aleatoria (no la trayectoria hacia la imagen, sino la imagen en si) de una base ...
  #1 (permalink)  
Antiguo 22/02/2002, 13:12
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Intercambio de imagenes

La siguiente lógica sirve para obtener el contenido una imagen aleatoria (no la trayectoria hacia la imagen, sino la imagen en si) de una base de datos.

El uso sería <img src="banner.asp">

Suponiendo que tienes una base de datos con una tabla que contiene un campo imagen (tipo OLE Object), y que ya cuentes con varios registros en ella; el código de banner.asp sería...

<%
Response.Buffer = True
Response.ContentType = "image/jpeg"

Set Conn = Server.CreateObject("ADODB.Connection")
Set Tabla = Server.CreateObject("ADODB.Recordset")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("Bd_Banners.mdb")
tabla.open "SELECT * from catalogo" ,Conn,3,2

cuantos = tabla.RecordCount

Randomize
aleatorio = Int(Rnd * cuantos)
For x = 1 to aleatorio-1
tabla.movenext
Next

Response.BinaryWrite tabla("imagen")

Tabla.Close
Set Tabla = nothing
Conn.Close
Set Conn = nothing

Response.End
Response.Flush
%>

En caso de no contar con la base de datos de imagenes, continua leyendo el tip....

Favor de crear:
A.-) Una base de datos (Bd_Banners.mdb)
B.-) Una tabla (catalogo)
C.-) Un campo en esa tabla 'imagen' tipo 'OLE Object'
D.-) Ubica donde estan los archivos .jpg que utilizarás en el intercambio de banners.

Crea el siguiente código (crear_catalogo_de_banners.asp)...


  #2 (permalink)  
Antiguo 22/02/2002, 13:19
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Re: Intercambio de imagenes

<!--METADATA TYPE="typelib"
UUID="00000205-0000-0010-8000-00AA006D2EA4"
NAME="ADODB Type Library"
-->
<%
ReDim Listado_de_imagenes(4096) 'Valor arbitrario para leer hasta 4096 archivos .jpg

Dir = "./imagenes" 'Directorio donde se ubican los archivos
ext_archivos = ".JPG" 'extension de imagenes a buscar
Bd = "Bd_Banners" 'Base de datos de banners
tabla1 = "Catalogo" 'Tabla en la base de datos que contendrá el listado de imagenes

Listado_imagenes ext_archivos,Dir 'leer el directorio de imagenes y llenar un arreglo con la lista

Llenar_bd_OLE Bd,tabla1,dir 'Usando el contenido de cada imagen... llenar el catalogo
%>
<%
Function Listado_imagenes(extension,dir) dir2 = Server.MapPath(dir)
Set objFSO = CreateObject("Scripting.FileSystemObject&quot ;)
Set objFolder = objFSO.GetFolder(dir2)
Set objFilesCollection = objFolder.Files
i = 0
For Each objFile in objFilesCollection
if UCase(right(objFile.Name,4)) = extension then
Listado_de_imagenes(i) = objFile.Name
i = i + 1
end if
Next
ReDim Preserve Listado_de_imagenes(i-1)
End Function
%>
<%
Function Llenar_bd_OLE(nombre_bd,tabla1,dir)
set connVB = server.createobject("ADODB.Connection")
set Tabla = server.CreateObject("ADODB.Recordset")
connVB.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath(nombre_bd)
Tabla.open "Select * from " & tabla1 ,connVB,3,2
For i = 0 to (UBound(Listado_de_imagenes)-1)
tabla.AddNew
tabla("imagen") = Leer_imagen_para_OLE(dir,Listado_de_imagenes(i))
Tabla.Update
Next
tabla.close
Set tabla = nothing
connVB.close
Set connVB = nothing
End Function
%>
<%
Function Leer_imagen_para_OLE(dir,imagen)
Dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary
objStream.Open
objStream.LoadFromFile Server.MapPath(dir & "/" & imagen)
Leer_imagen_para_OLE = objStream.Read
objStream.Close
Set objStream = Nothing
%>

---------------------
Tan libre como gratuito!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:25.