Ir para conteúdo

POWERED BY:

Arquivado

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

Edson L. Zimmermann

Exibir imagens em colunas - ASP + FSO

Recommended Posts

Galera eu tentei fazer um código para exibir imagens de uma determinada pasta, até ai tudo bem, ai eu precisei colocar elas em colunas, ai de pra bola, li um monte de tópicos aqui mais não entendi como funciona o for each nesse caso, estou colocando o script pra quem puder me ajudar.

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include FILE="conex.asp"-->
<% 
vpasta = request("pasta")

set listar = Server.CreateObject("adodb.recordset")
sql = "SELECT * FROM GALERIAS WHERE NOME_PASTA_GAL LIKE '%"&vpasta&"%'"
listar.open sql, conex, 3,3

nome_pasta = Server.MapPath(".") & "\" &vpasta
set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set pasta = FSO.GetFolder(nome_pasta) 
Set archivos = pasta.Files 

contador = 0
for each file in archivos
contador = contador+1
next

response.Write(contador)

linhas = 6
colunas = 2
%>
<table border="1"> 
<tr> 
   <td><%= listar("nome_gal") %></td>
</tr>
<%for each file in pasta.files %>
   <% for each contador in linhas%>
	  <tr>
		 <td><img src="<%response.write(vpasta&"/"&file.name) %>" width="100"></td>
	  </tr>
   <%next%>   
<%	
next 
%> 
</table> 
</body> 
</html>

Grato

Edson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano consegui quebrar teu galho fazendo um exemplo simples para você entende, o resto é contigo

 

<%
dim fs,fo,x, nomes, y
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder(Server.Mappath("img"))

for each x in fo.files
  y = fs.GetExtensionName(x.Name)
  if y = "jpg" or y = "gif" then
		  nomes = nomes & "<td><img src=""img/" & x.Name & """ width=""100""></td>"
  end if
next
nomes = Left(nomes, Len(nomes)-1)
set fo=nothing
set fs=nothing

response.write("<table border=""1"">")
response.write("<tr>") 
response.write("<td>Nome Galeria</td>")
response.write("</tr>")
response.write("<tr>")
response.write(nomes)
response.write("</tr>")
response.write("</table>")
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tb pode fazer um thumbnail viewer, fica melhor...

procure no forum, existem ótimos exemplos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano consegui quebrar teu galho fazendo um exemplo simples para você entende, o resto é contigo

 

<%
dim fs,fo,x, nomes, y
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder(Server.Mappath("img"))

for each x in fo.files
  y = fs.GetExtensionName(x.Name)
  if y = "jpg" or y = "gif" then
		  nomes = nomes & "<td><img src=""img/" & x.Name & """ width=""100""></td>"
  end if
next
nomes = Left(nomes, Len(nomes)-1)
set fo=nothing
set fs=nothing

response.write("<table border=""1"">")
response.write("<tr>") 
response.write("<td>Nome Galeria</td>")
response.write("</tr>")
response.write("<tr>")
response.write(nomes)
response.write("</tr>")
response.write("</table>")
%>

Cara, brigado pela ajuda, mais ta dando esse erro ai...

 

Erro de tempo de execução do Microsoft VBScript erro '800a0005' 

Chamada de procedimento ou argumento inválido: 'Left' 

/fotos/galeria.asp, line 13

Mais muito obrigado pela ajuda...

 

você tb pode fazer um thumbnail viewer, fica melhor...

procure no forum, existem ótimos exemplos...

Vlw cara...vou procurar por isso no fórum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edson, fiz o teste aqui e funcionou belezinha, naum estou entendendo por que não funfou.

Amigo as imagens apareceram agora, só dois detalhes....como eu faço pra criar linhas, por ex. a cada 4 imagens criar uma linha, outro detalhe interessante, algumas imagens não apareceram e quando fui verificar a extensão JPG estava escrita em maiúsculas, e quando eu alterei para minúsculas elas apareceram também...por isso antes não tinha aparecido nada entende...

 

Se você puder continuar me ajudando eu agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano em relação a situação de extenções em maiusculo, tem 2 formas de você ageitar iso a primeira seria assim

 

y = fs.GetExtensionName(x.Name)
  if y = "jpg" or y = "gif" or y = "GIF" or y = "JPG" then
		  nomes = nomes & "<td><img src=""img/" & x.Name & """ width=""100""></td>"
  end if

A segunda é deixar sem o verificador de extençao, eu fiz isso pois se tivesse outro arquivo a não ser com estas extenções o sistema não iria mostrar este outro arquivo.

 

Mais caso você vai colocar na pasta img apenas as imagens você pode retirar este verificador de extenções.

 

No caso do problema com as linhas so vou poder tentar te ajudar a noite, pois estou no trampo e aqui eu não teno iis instalado para ver se eu consigo mecher com isso, inclusive para fazer este teste anterior eu tive que jogar via FTP, mais vai tentando ae, caso não consiga a noite quando chegar em casa eu te ajudo.

 

Ou se alguém aparecer ae e puder ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano em relação a situação de extenções em maiusculo, tem 2 formas de você ageitar iso a primeira seria assim

 

y = fs.GetExtensionName(x.Name)
  if y = "jpg" or y = "gif" or y = "GIF" or y = "JPG" then
		  nomes = nomes & "<td><img src=""img/" & x.Name & """ width=""100""></td>"
  end if

A segunda é deixar sem o verificador de extençao, eu fiz isso pois se tivesse outro arquivo a não ser com estas extenções o sistema não iria mostrar este outro arquivo.

 

Mais caso você vai colocar na pasta img apenas as imagens você pode retirar este verificador de extenções.

 

No caso do problema com as linhas so vou poder tentar te ajudar a noite, pois estou no trampo e aqui eu não teno iis instalado para ver se eu consigo mecher com isso, inclusive para fazer este teste anterior eu tive que jogar via FTP, mais vai tentando ae, caso não consiga a noite quando chegar em casa eu te ajudo.

 

Ou se alguém aparecer ae e puder ajudar.

Ok, as extensões eu pensei a mesma coisa que você coloquei junta na condição, mais na boa quanto puder me ajudar eu agradeço.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este link

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça suas devidas adptacoes e tendo duvida ou erro , posta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este link

Amigo não consegui configurar o caminhao da pasta...eu tenho um exemplo aqui que quase deu certo, na primeira página exibe as fotos corretamente, mais quanto eu clico na página dois, ou qualquer uma que venha depois na paginação o código não lê mais a pasta certa, volta uma pasta acima aparentemente, vou postar o código se você puder me ajudar.

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="conex.asp"-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>:: Galeria de Fotos ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
a {text-decoration:none;
	color: #000000;
}
a:hover {
	text-decoration:underline;
}
</style>
<style type="text/css">
<!--
body {
	background-color: #ffffff;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 9px;
}
.style1 {color: #FFFFFF}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
	document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>

</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
pag =request.QueryString("pag")
'caminho = request.QueryString("caminho")
%> 

<div id="Layer1" style="position:absolute; left:5px; top:6px; width:242px; height:185px; z-index:1;"> 
  <%
caminho = request.QueryString("caminho")
%>
<%
'Sistema de ThumbNails usando FSO
Dim strPicArray
Dim iLoop, limite, pagina, totalarq, i
Dim vlMaximo, vlMinimo, anterior
Dim ObjFso, ObjArq, ObjPasta, ObjSubPasta


vpasta = request("pasta")

'Número de colunas
picsInRow = 3
' Pasta de onde buscará as fotos
thumbFilePath = vpasta&"/"'"pequenas/"
' Cria o link para as fotos
imageFilePath = vpasta&"/"'"fotos/"
' Pasta de onde buscará as fotos
strPhysicalPath=vpasta&"/"

Set fso = CreateObject("Scripting.FileSystemObject") 
set mainfolder = Fso.GetFolder(Server.MapPath(strPhysicalPath))
Set ObjPasta = Fso.GetFolder(Server.MapPath(strPhysicalPath))
Set filecollection = mainfolder.Files



limite  = 12	   ' limite de registros por página
totalarq = ObjPasta.files.count   ' total de arquivos encontrados

 ReDim thumb((totalarq-1))
 Dim y
 y = 0

 ' guardamos cada arquivo dentro de um array
 For Each ObjArq in ObjPasta.Files  
  thumb(y) = objArq.Name
  y = y + 1 
 Next
   
pagina = Request("pag")
 IF pagina = "" Then
  IF limite < UBound(thumb) Then
   vlMinimo = 0
   vlMaximo = (limite-1)
  Else
   vlMinimo = LBound(thumb)
   vlMaximo = UBound(thumb)
  End IF
  pagina = 1
  anterior = ""
 Else
  vlMinimo = (pagina*(limite-1))+(pagina)
  vlMaximo = ((limite-1)*(pagina+1))+((pagina)*1)
  IF vlMaximo > UBound(thumb) Then vlMaximo = UBound(thumb)
  pagina = pagina + 1
  anterior = pagina - 2
  IF anterior = 0 Then anterior = ""
 End IF

Response.Write "<div align='center'>"
Response.Write "<center>"
response.write "<table border='0' cellpadding='4'>"

intTotPics = 0
For Each file In filecollection
	  intTotPics = intTotPics + 1
	  
	  Next
	  Redim strPicArray(2,intTotPics)

	x = 0
	For Each file in filecollection
	strPicArray(0,x) = file.Name
			x = x + 1
	Next
%>
<%
principal = "mostra.asp?imagem="
url = imageFilePath
recuperar = "&recuperar="
%>
<%
' Esta linha lê a pasta e coloca as imagens dentro da tabela
	  For x = vlMinimo to vlMaximo
	  Response.Write "<td align='center'>"
	  Response.Write "<a href='"& principal & url & strPicArray(0,x) & recuperar & url & " 'target='mostra'><img src='" & thumbFilePath & strPicArray(0,x) & "' width='60' height='50' border='0'></a>"
	  Response.Write "<br></td>"
		  intPicNo = intPicNo + 1
	  If intPicNo=picsInRow Then
		  Response.write "</tr><tr>"
		  intPicNo = 0
		  End If
	 Next
%>

<%
Response.Write "</tr></table>"
Response.Write "</div></center>"
%>
 
</center>
</font></div>
<div id="layer2" style="position:absolute; left:252px; top:71px; width:1024; height:768; z-index:2;"> 
  <p class="style1"> 
	<IFRAME SRC="mostra.asp?pag=<%=pag%>&caminho=<%=caminho%>"  name="mostra" width="1024" height="768" scrolling="no" border="0" frameborder="0"></iframe>
  </p>
</div>

<div id="Layer2" style="position:absolute; left:250px; top:6px; width:468px; height:60px; z-index:3"></div>
<div id="Layer3" style="position:absolute; left:8px; top:282px; width:238px; height:15px; z-index:4;"> 
  <div align="left"> <font size="3" face="verdana" color="#FFFFFF"><strong><font color="#FFFF00" face="Arial, Helvetica, sans-serif"><center> 
	<%FOR X=-1 TO (y/limite-1)
If Pagina = x+2 Then%>
	(<%=X+1%>) 
	<% Else%>
	<A HREF="index.asp?pag=<%=X+1%>&caminho=<%=caminho%>"><%=X+1%></A> 
	<% End If
NEXT%>
  </div>
</div>
<div id="Layer4" style="position:absolute; left:4px; top:304px; width:241px; height:44px; z-index:5"></div>
<table width="716" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr> 
	<td width="716" height="404"> </td>
  </tr>
</table>
<p class="style1"> </p>
</body>
</html>

Se puderem me ajudar eu agradeço.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pasta esta vindo por querystring??? pelo endereço da url?

 

Você esta utilizando vpasta = request("pasta") se for pela url use vpasta = request.querystring("pasta")

 

Se estiver utilizando formulário coloque para recuperar a pasta assim vpasta = request.form("pasta")

 

vamos por que esta página que fica no request se chama teste e esta página ficara dentro da página img do seu servidor, então coloque o caminho assim

 

vpasta = "/img/" & seurequest("pasta")

 

desta forma o navegador ira sempre identificar o caminho correto, caso você avançe diretório a mais ele sempre vai fazer a montagem do caminho de forma correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pasta esta vindo por querystring??? pelo endereço da url?

 

Você esta utilizando vpasta = request("pasta") se for pela url use vpasta = request.querystring("pasta")

 

Se estiver utilizando formulário coloque para recuperar a pasta assim vpasta = request.form("pasta")

 

vamos por que esta página que fica no request se chama teste e esta página ficara dentro da página img do seu servidor, então coloque o caminho assim

 

vpasta = "/img/" & seurequest("pasta")

 

desta forma o navegador ira sempre identificar o caminho correto, caso você avançe diretório a mais ele sempre vai fazer a montagem do caminho de forma correta.

Bom dia amigo,

Eu tenho um link, e nesse link eu mando o nome da pasta onde estão as fotos, para essa variável vpasta, eu tentei usar request.querystring("pasta")., mais mesmo assim não resolveu, problema que eu estou olhando é na paginação, já que o mesmo arquivo é "gerado" novamente, se eu dou write na tela com o nome da varíavel na primeira tela aparece, nas próximas não, então eu acho que é isso que tem que arrumar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque a variavel no link d paginação, isto ira resolver, tipo...

 

<a href="pagina.asp?pagina=1&pasta=nomepasta">proxima página</a>

 

olho o exemplo acima, na paginação você cria a mesma variavel que quando for para a proxima página o querystring estara novamente disponivel com isso o sistema ira jogar o nome da pasta e reconhecer novamente.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque a variavel no link d paginação, isto ira resolver, tipo...

 

<a href="pagina.asp?pagina=1&pasta=nomepasta">proxima página</a>

 

olho o exemplo acima, na paginação você cria a mesma variavel que quando for para a proxima página o querystring estara novamente disponivel com isso o sistema ira jogar o nome da pasta e reconhecer novamente.

 

[]'s

Ok, eu to tendando isso, mais não to acertando onde...já tentei em vários lugares...e não to acertando...

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.