Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] Simples ASP thumbnail viewer

Recommended Posts

Simples ASP thumbnail viewer,é preciso configurar o config.inc para exibir todas as imagens na pasta selecionada.

 

 

 

thumb.asp

<html>
<head>
<title>Thumbnail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.mytxt {  font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; font-style: normal}
-->
</style>

<script language="JavaScript">
<!--
function openCentered(theURL,winName,winWidth,winHeight,features) {
  var w = (screen.width - winWidth)/2;
  var h = (screen.height - winHeight)/2 - 60;
  features = features+',width='+winWidth+',height='+winHeight+',top='+h+',left='+w;
  window.open(theURL,winName,features);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" leftmargin="3" topmargin="0" marginwidth="0" marginheight="0">
<!--#include file="config.inc" -->
<%
  function GetBytes(flnm, offset, bytes)

	 Dim objFSO
	 Dim objFTemp
	 Dim objTextStream
	 Dim lngSize

	 on error resume next

	 Set objFSO = CreateObject("Scripting.FileSystemObject")
	 
	
	 Set objFTemp = objFSO.GetFile(flnm)
	 lngSize = objFTemp.Size
	 set objFTemp = nothing

	 fsoForReading = 1
	 Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)

	 if offset > 0 then
		strBuff = objTextStream.Read(offset - 1)
	 end if

	 if bytes = -1 then		' Get All!

		GetBytes = objTextStream.Read(lngSize)  'ReadAll

	 else

		GetBytes = objTextStream.Read(bytes)

	 end if

	 objTextStream.Close
	 set objTextStream = nothing
	 set objFSO = nothing

  end function


  function lngConvert(strTemp)
	 lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) * 256)))
  end function

  function lngConvert2(strTemp)
	 lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 1)) * 256)))
  end function

  
  function gfxSpex(flnm, width, height, depth, strImageType)

	 dim strPNG 
	 dim strGIF
	 dim strBMP
	 dim strType
	 strType = ""
	 strImageType = "(unknown)"

	 gfxSpex = False

	 strPNG = chr(137) & chr(80) & chr(78)
	 strGIF = "GIF"
	 strBMP = chr(66) & chr(77)

	 strType = GetBytes(flnm, 0, 3)

	 if strType = strGIF then				'  GIF

		strImageType = "GIF"
		Width = lngConvert(GetBytes(flnm, 7, 2))
		Height = lngConvert(GetBytes(flnm, 9, 2))
		Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
		gfxSpex = True

	 elseif left(strType, 2) = strBMP then		' is BMP

		strImageType = "BMP"
		Width = lngConvert(GetBytes(flnm, 19, 2))
		Height = lngConvert(GetBytes(flnm, 23, 2))
		Depth = 2 ^ (asc(GetBytes(flnm, 29, 1)))
		gfxSpex = True

	 elseif strType = strPNG then			' Is PNG

		strImageType = "PNG"
		Width = lngConvert2(GetBytes(flnm, 19, 2))
		Height = lngConvert2(GetBytes(flnm, 23, 2))
		Depth = getBytes(flnm, 25, 2)

		select case asc(right(Depth,1))
		   case 0
			  Depth = 2 ^ (asc(left(Depth, 1)))
			  gfxSpex = True
		   case 2
			  Depth = 2 ^ (asc(left(Depth, 1)) * 3)
			  gfxSpex = True
		   case 3
			  Depth = 2 ^ (asc(left(Depth, 1)))  '8
			  gfxSpex = True
		   case 4
			  Depth = 2 ^ (asc(left(Depth, 1)) * 2)
			  gfxSpex = True
		   case 6
			  Depth = 2 ^ (asc(left(Depth, 1)) * 4)
			  gfxSpex = True
		   case else
			  Depth = -1
		end select


	 else

		strBuff = GetBytes(flnm, 0, -1)		' 
		lngSize = len(strBuff)
		flgFound = 0

		strTarget = chr(255) & chr(216) & chr(255)
		flgFound = instr(strBuff, strTarget)

		if flgFound = 0 then
		   exit function
		end if

		strImageType = "JPG"
		lngPos = flgFound + 2
		ExitLoop = false

		do while ExitLoop = False and lngPos < lngSize

		   do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos < lngSize
			  lngPos = lngPos + 1
		   loop

		   if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff, lngPos, 1)) > 195 then
			  lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
			  lngPos = lngPos + lngMarkerSize  + 1
		   else
			  ExitLoop = True
		   end if

	   loop
	   '
	   if ExitLoop = False then

		  Width = -1
		  Height = -1
		  Depth = -1

	   else

		  Height = lngConvert2(mid(strBuff, lngPos + 4, 2))
		  Width = lngConvert2(mid(strBuff, lngPos + 6, 2))
		  Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
		  gfxSpex = True

	   end if
				   
	 end if

  end function



  ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  ':::	  Thumb											  :::
  ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  dove = server.MapPath("../"&cfoto)
  Set objF = objFSO.GetFolder(dove)
  Set objFC = objF.Files
  nfoto = 1
%>
<table border="1" cellspacing="4" cellpadding="1" bgcolor="silver" class="mytxt">
  <%

ftot = 0
For Each f1 in objFC
ftot = ftot + 1
Next

starthere = (pnum-1) * fpagina
endhere = pnum * fpagina + 1

'response.write ftot&"<br>"
'response.write starthere&"<br>"
'response.write endhere&"<br>"
%>

<%For Each f1 in objFC

	if gfxSpex(f1.Path, w, h, c, strType) = true and nfoto > starthere and nfoto < endhere then


%>
<%If n = 0 then%>
  <tr>
<%End If%>
	<td> 
	  <div align="center">
		<table border="0" width="110" cellpadding="0" cellspacing="0" height="80">
		  <tr> 
			<td valign="middle" align="center" width="110" height="100"> 
			  <p align="center"><a href="java script:openCentered('http://<%=request.servervariables("HTTP_HOST")%>/<%=cfoto%>/<%=f1.name%>','fotoprod','<%=w+20%>','<%=h+20%>','toolbar=no')"><img src="../<%=cfoto%>/<%=f1.name%>" width="100" height="80" border=1
alt="Foto: <%=f1.name%>
Creata il : <%=f1.DateCreated%>
Peso : <%=f1.Size%> bytes
Dimensioni : <%=w%> X <%=h%> pixel
Colori : <%=c%>
Foto = <%=nfoto%>"></a> 
			</td>
		  </tr>
		  <tr> 
			<td valign="middle" align="center" width="110" height="10"><span class="mytxt"><%=f1.name%></span><br>
			  </td>
		  </tr>
		</table>
	  </div>
  </td>	   
<%'		  response.write w & " x " & h & " " & c & " colors"
ufoto = nfoto
	  else
		  response.write " "
	  end if
n = n + 1
nfoto = nfoto + 1
'-------------------------- inicio
if n = nmax then
n = 0
%>
</tr>
<%
end If
'-------------------------- fim
Next
%>
</table>
<table width="80%" border="0" cellspacing="2" cellpadding="2">
  <tr> 
	<td width="33%"> 
	  <div align="left"> 
		<%if pnum <> 1 then%>
		<a href="thumb.asp?pnum=<%=pnum-1%>" class="mytxt">« Anterior</a> 
		<%end if%>
	  </div>
	</td>
	<td width="34%"> 
	  <div align="center" class="mytxt"> | 
		<%
np = 1
Do while ftot-(np-1)*fpagina > 0%>
		<a href="thumb.asp?pnum=<%=np%>" class="mytxt"><%=np%></a> | 
		<%
np = np + 1
loop%>
	  </div>
	</td>
	<td width="33%"> 
	  <div align="right"> 
		<%if ftot > ufoto then%>
		<a href="thumb.asp?pnum=<%=pnum+1%>" class="mytxt">Próximo »</a> 
		<%end if%>
	  </div>
	</td>
  </tr>
</table>
<%
  set objFC = nothing
  set objF = nothing
  set objFSO = nothing
%>
</body>
</html>

config.inc

<%

'----------------------------| Configuracao Thumbnail | Thumbnail config |
'nmax = quantas imagens por linha 
'cfoto = pasta imagem 
'fpagina = foto por pagina 
'finizio = 1º iamgem
'pnum = numero da pagina (page number)

nmax = request("nmax")
cfoto = request("cfoto")
fpagina = request("fpagina")
finicio = request("finicio")
pnum = request("pnum")

'-----------------------------| code |

if nmax = "" then
nmax = 5
end if

if cfoto = "" then
cfoto = "foto"
end if

if fpagina = "" then
fpagina = 20
end if

if finicio = "" then
finicio = 1
end if

if pnum = "" then
pnum = 1
end if


%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.