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'>»</strong> " & _ subPastas.Name & " </a><small> (" & 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">«</a> <%=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:
Seção ASP .NET do site Macoratti.net
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#