ASP - Galeria de imagens


Neste artigo vamos mostrar como você pode criar uma galeria de imagens usando páginas ASP para exibir imagens (gif e jpg) presentes em diretórios específicos de um servidor web.

Para testar o exemplo do artigo eu vou usar o IIS do Windows XP, mas você pode usar o Personal Web Server que também funciona.

Encontrei um pequeno projeto na web e fiz pequenos ajustes para criar esta aplicação ASP. Ela não é portanto de minha autoria.

A aplicação funciona assim :

1- Você deve criar um diretório principal onde será colocado o arquivo asp - default.asp - que contém o código de script ASP que irá acessar as imagens e exibi-las na web.

2- Neste diretório você deverá criar tantos diretórios quanto desejar e neles colocar as imagens classificadas por diretório. Para facilitar a classificação você deve dar um nome sugestivo a cada subdiretório.

A estrutura usada no exemplo do artigo é a seguinte:

3- Em cada pasta você pode usar um arquivo chamado imagens.txt que contém uma pequena descrição para cada imagem. Este arquivo não é obrigatório.

A aplicação usa basicamente o objeto FileSystemObject para percorrer as pastas e ler cada imagem para em seguida exibi-la na web.

O único arquivo da aplicação chama-se default.asp e contém o seguinte código:

<%
' Este arquivo deve estar no diretório que contenham subdiretorios com as imagens a serem exibidas ´só imagens(jpg, gif).
' Você pode criar um arquivo texto chamado imagens.txt para cada pasta
' sendo que o titulo de cada linha irá ser exibido na pagina
' defina o tamanho da borda para um valor maior que zero se quiser bordar ao redor da imagem
tamanho_borda = "5"
cor_borda = "aqua"
%>
<html>
<head>
<title>Galeria de Imagens</title>

<!--define o estilo a ser aplicado na página	-->
<style type="text/css">
	body {
	font-family: verdana;
	text-align: center;
		}
</style>

</head>
<a name="top"></a>
<h2>Galeria de Imagens</h2>
<body>
<%
'define as constantes usadas pelo objeto FileSystemObject usadas  no projeto
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

'recebe o diretório da requisição como 'f'
diretorio = request.querystring("f")

if diretorio = "" then

	pastaEspecifica = server.mappath(".")

	Set arquivoSistema = CreateObject("Scripting.FileSystemObject") 
	Set exemplo = arquivoSistema.GetFolder(pastaEspecifica) 
	Set colecaoPastas = exemplo.SubFolders

	For Each subPastas in colecaoPastas
		tamanhoPasta = left((subPastas.size/1000000), 3)
	    listaPasta = listaPasta & "<a href='?f=" & subPastas.name & "'><strong title='view'>&#187;</strong> " & _
                                 subPastas.Name & " </a><small>&nbsp;(" & tamanhoPasta & " MB)</small>" & vbcrlf
	    listaPasta = listaPasta & "<BR>"  
	Next
	set arquivoSistema = nothing
	Response.Write listaPasta
else

   caminhoArquivo = server.mappath(".") & "\" & diretorio
   tituloArquivo = caminhoArquivo & "\imagens.txt"

   Set arquivoSistema = CreateObject("Scripting.FileSystemObject")
   Dim Vetor()

     If arquivoSistema.FileExists(tituloArquivo) then
		
                          set file = arquivoSistema.GetFile(tituloArquivo)
		Set TextStream = file.OpenAsTextStream(ForReading,TristateUseDefault)
		contaTitulo = 0

		Do While Not TextStream.AtEndOfStream
			Linha = TextStream.readline
			ReDim Preserve Vetor(contaTitulo)
			Vetor(contaTitulo) = Linha
			contaTitulo = contaTitulo + 1
		Loop

		textStream.close

	end if

	Set exemplo = arquivoSistema.GetFolder(caminhoArquivo) 
	Set colecaoArquivos = exemplo.Files
	contaArquivo = 0
	
	For Each file in colecaoArquivos
	
		Ext = UCase(Right(File.Path, 3)) 
	
		If Ext = "JPG" OR Ext = "GIF" Then
	        on error resume next
	    	dados = Vetor(contaArquivo)
		    on error goto 0
		    caminhoReferencia = diretorio & "/" & file.name
		    caminhoImagem = "<strong>" & dados & "</strong><br><a href='" & caminhoReferencia & _
                                                      "' title='Galeria de Imagens' border=0><img src='" & caminhoReferencia & _ 
                                                      "' border='" & tamanho_borda & "' title=""" & dados & """ style='border-color: " & _
                                                         cor_borda & ";'></a><br>"
	        encheLista = encheLista & caminhoImagem & vbcrlf
	        encheLista = encheLista & "<BR>"
		    contaArquivo = contaArquivo + 1
		    dados = ""
		end if
	Next
	set arquivoSistema = Nothing
	encheLista = encheLista & "<br><small><a href='http://www.macoratti.net/indasp.htm' target='_blank'> & _
                                                                      Macoratti.net - Artigo - Galeria de Imagens</a></small>"
%>
<h3><a href="." title="up one level">&#171;</a>
&nbsp;<%=diretorio%></h3>

<p><%=encheLista%></p>
<% end if %>
<p style="font-size: xx-small;"><a href="#top" title="retorna ao topo">topo da página</a></p>
</body>
</html>
Executando o arquivo default.asp no IIS ou no PWS obteremos o resultado :
Tela principal exibindo as pastas com imagens da aplicação
Exibindo as imagens da pasta  estações.

O código é muito simples e se você quiser saber mais sobre o objeto FileSystemObject leia o artigo do site:

VB - Usando o objeto FileSystemObject

A única diferença em relação ao ASP é que para instanciar um objeto do tipo FileSystemObject você usa :

Set arquivoSistema = CreateObject("Scripting.FileSystemObject")

A aplicação praticamente não possui recursos mas quebra o galho para exibir suas imagens na web. Você pode , usando sua criatividade e talento melhorar esta pequena aplicação transformando-a em um super visualizador de imagens ASP.

Pegue o código completo aqui : galeria.zip (contém arquivos exemplos)

Veja o exemplo funcionando aqui : http://www.macoratti.net/galeria/

Eu sei é apenas ASP , mas eu gosto...

Referências:


José Carlos Macoratti