Ir para conteúdo

POWERED BY:

Arquivado

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

Patricia

inclusão diferente no access

Recommended Posts

Tenho uma pilha de imagens e preciso inclui-las no access, pois elas serão apresentadas em uma galeria no site, mas acredito que haja alguma forma de inclui-las no access sem ter que cadastra-las uma a uma!alguem sabe se isso é possível?e se é possível como faço???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa o FSO, ele copia o nome dos arquivos pra um vetor, você faz um teste pra ver se o nome já está no banco, se não estiver, inclui.Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pati se você quer uma coisa bem simples, sequer precisa do access ou outra base de dados para o fazer. Tenta assim:

 

cria uma pasta para a sua galeria("C:\Inetpub\srcgal_folder" por exemplo) na pasta root do servidor

dentro dela cria também 3 subpastas para testar este sistema. "galeria1"; "galeria2"; e "galeria3".

 

eu criei este sistema de forma muito simples e de fácil compreenssão. ele consiste básicamente em querystrings e usa o componente FSO para listar ficheiros das pastas.

 

simplesmente defini a pasta root da galeria, e conforme a querystring, é feita a seleção da subpasta; aí o sistema pega no caminho da pasta correspondente a galeria requisitada por querystring, especifica essa pasta ao componente FSO(File System Object) e lista o que está na pasta dela. simples né?

 

o código asp está a vermelho e comentado a cada função. agora é impossível não entender; mais mastigado que isso é impossível... :o ;)

 

<div align="center">

<center>

<table cellpadding="3" bgcolor="#000000" cellspacing="1" width="500">

 

<%

'vamos definir a pasta root da galeria

Pasta = "C:\Inetpub\srcgal_folder"

 

'e selecionar a subpasta correspondente a cada galeria

 

'se quiser a galeria de nome g1

If Request.Querystring("galeria") = "g1" Then

 

'a subpasta é a correspondente

Subpasta = "galerias\galeria1"

 

'se a galeria for g2

ElseIf Request.Querystring("galeria") = "g2" Then

 

'então temos a subpasta da galeria g2

Subpasta = "galerias\galeria2"

 

'se for g3

ElseIf Request.Querystring("galeria") = "g3" Then

 

'temos aqui a definição da pasta da g3

Subpasta = "galerias\galeria3"

 

'e por fim, se não for especificada uma pasta

ElseIf Request.Querystring("galeria") = "" Then

 

'mostramos um menu com os links para as suas categorias

%>

 

<tr>

<td width="100%" bgcolor="#FFFFFF">

<a href="default.asp?galeria=g1">Galeria 1</a>

<br>

<a href="default.asp?galeria=g2">Galeria 2</a>

<br>

<a href="default.asp?galeria=g3">Galeria 3</a>

</td>

</tr>

 

<%

'final da seleção de subpasta

End If

 

'aqui atribuimos uma variavel que servira para ligar o objecto que lista o conteúdo das pastas

Set fs = Server.CreateObject("Scripting.FileSystemObject")

 

'ja temos a definição completa da pasta a listar; então indicamos o caminho ao objecto

Set Lista = fs.GetFolder("" & Pasta & "\" & Subpasta & "")

 

'agora é só começar a listar os ficheiros da pasta que foi definida

For each file in Lista.Files

 

'esta função serve para remover da lista o ficheiro default.asp. muito útil se você não quiser subgalerias

If file.name <> "default.asp" then

%>

 

<tr>

<td width="100%" align="center" bgcolor="#FFFFFF">

<img src="<%= Subpasta %>/<%= file.name %>" width="468" height="60"><br>

<a href="<%= Subpasta %>/<%= file.name %>"><%= file.name %></a>

</td>

</tr>

 

<%

'finalizando a remoção do file default.asp

End if

 

'e passando para o próximo ficheiro da lista

Next

%>

 

</table>

 

<%

'aqui temos um link que só vai aparecer se você estiver vendo a lista de uma pasta

If Request.Querystring("galeria") <> "" Then

%>

 

<br>

<a href="default.asp">Voltar a lista de galerias</a>

 

<%

'final da função do link de voltar a lista de galerias

End If

%>

 

</center>

</div>

agora se você quiser uma coisa mais complexa como colocar informações de cada imagem, nome, tamanho, descrição, autor e etc; você pode aproveitar esse código e adicionar algumas funções.

 

pelo comentário do amigo a.crow você pode ver se os ficheiros ja constam no access e se não constarem, adicionar. eu não sei como faz isso(a.crow, se der explica aí como faz, isso é bastante útil e até gostava de aprender :P ); mas sei que você pode incluir na bd de uma só vez todos os ficheiros que estiverem em uma pasta, já com o nome do ficheiro, tamanho, tipo, data de criação, ultima modificação e acho que o FSO ainda faz algumas coisas mais. aí você usa esse código para listar, e conforme o nome do ficheiro, você anexa a informação correspondete na base de dados onde você pode adicionar campos personalizados(descrição, autor, contacto...), mas aí num tem geito, tem que ser na raça mesmo.

 

espero que isso ajude de alguma forma. se mais qualquer coisa, é só postar aí denovo.

 

beijos; abraços;

 

e até breve.

 

Bborg

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que teve mais gente querendo vou deixar o código todo. Qualquer problema, me avisa que eu tento arrumar, ainda não testei

 

Arquivo 1: Selecao.asp

<strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">AQUI VOCÊ SÓ DIGITA O CAMINHO PARA A PASTA DAS IMAGENS EXEMPLO, SE O ARQUIVO ESTÁ NA PASTA ".\IMAGENS" E QUER PEGAR DE ".\IMAGENS\FOTOS\TODAS" VOCÊ DIGITA "IMAGENS\FOTOS\TODAS\" , OU SEJA, VOCÊ DIGITA TODO O CAMINHO DA RAIZ ATÉ O DIRETÓRIO ONDE ESTÃO AS IMAGENS.</font></strong> <form name="form1" method="post" action="grava.asp"><input name="pasta" type="text"><br><input name="envia" type="submit"></form>
Arquivo 2: grava.asp

<%'SUA CONEXÃOSet objConn =  Server.CreateObject("ADODB.Connection")objConn.Open "DBQ=" & Server.MapPath("dados.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"'VÊ QUE PASTA Épasta = "/"&request("pasta")'CRIA O OBJETOSet fs = Server.CreateObject("Scripting.FileSystemObject")Set Lista = fs.GetFolder(server.MapPath(pasta))'PARA CADA ARQUIVI...For each file in Lista.Files'RECEBE E LIMPA O NOME	nome_todo = file.name	exte = mid(nome_todo, instr(nome_todo,".")+1, len(nome_todo))	nome = mid(nome_todo, 1, instr(nome_todo,".")-1)	if exte = "jpg" or exte = "gif" or exte = "png" Then'VERIFICA SE O ARQUIVO JÁ EXISTE  StrSql = "select * from fotos where nome = '"&nome_todo&"'"  Set Objrs = ObjConn.Execute(strsql) 	 IF Objrs.Eof Then'SE NÃO EXISTE, GRAVA NO BANCO    StrSql = "Insert Into fotos (nome, pasta) values ( '"&nome_todo&"', '"&pasta&"')"    ObjConn.Execute(strsql) 	 End if	End ifNext'DESTRÓI A CONEXÃOObjConn.CloseSet objConn =  Nothing%>
Arquivo 3: ver.asp

<%'SUA CONEXÃOSet objConn =  Server.CreateObject("ADODB.Connection")objConn.Open "DBQ=" & Server.MapPath("dados.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}","username","password"'SELECIONA OS ARQUIVOSStrsql = "select * from fotos"set Objrs = ObjConn.Execute(strsql)Do while not Objrs.Eof'LISTA AS IMAGENS%>	<img src="<%=Objrs("pasta")%>\<%=Objrs("nome")%>"><br><%Objrs.MoveNextLoopObjConn.CloseSet objConn =  Nothing%>

LEMBRAR de sempre corrigir o caminho pro banco de dados e o nome das tabelas, também dá pra mudar isso para arquivos de outras extensões, é só mudar no if.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muitissimo Obrigado,funcionou perfeitamenteagora eu vou buscar como faco para cadastrar alem do nome da imagem (File.Name) o Widht (??) e o Height (??)se vcs souberem agradeço a ajuda antecipadamenteMUITO OBRIGADO MESMO!!!!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha só tenho imagens 80x80 que serao apresentados em uma galeria no site, ao clicar em uma dessas imagens ele localiza no banco a imagem original, ou seja a imagem com o tamanho original, e são diversos os tamanhos, como serão abertos em um popup eu preciso ter a largura e altura pra que o popup seja aberto na medida exata da imageme como são muitas as imagens, queria um meio dinamico de incluir essas informações no banco!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho uma dica que eu sempre uso pra te dar:Não use miniaturas... Abra logo a imagem em tamanho maior, mostre todas as imagens, esqueça as miniaturas, isso só serve para trancar a navegação, antigamente quando os modens eram lentos fazer miniaturas ajudava, mas hoje não mais...Quem vai ver as imagens vai acabar querendo ver todas mesmo, melhor abrir todas em tamanho grande, numa grande lista, enquanto o cara ve a primeira, a segunda já ta sendo carregada, quando ela passa pra segunda a terceira já veio... testa e verá como funciona bem... Ok... no seu caso talves isso seja dificil agora, mas passe a pensar assim para o seu próximo site...Outra hora vou colocar aqui uns links de sites que aboliram as miniaturas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Lucki, obrigado pela dica, mas não meu caso, as imagens estão minimizadas pra efeito de layout, pois as imagens tem cada uma um tamanho, e ficaria horrivel o design da pagina se as deixasse no modo original, alem do mais, deixando elas com 80x80 eu conseguirei mosrtrar 16 imagens por pagina, e se eu deixar no tamanho original, acredito que não passarão de tres por pagina, o que gerara um grande numero de paginas na paginação!!!de qualquer forma agradeço a dica!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenho uma dica que eu sempre uso pra te dar:Não use miniaturas... Abra logo a imagem em tamanho maior, mostre todas as imagens, esqueça as miniaturas, isso só serve para trancar a navegação, antigamente quando os modens eram lentos fazer miniaturas ajudava, mas hoje não mais...Quem vai ver as imagens vai acabar querendo ver todas mesmo, melhor abrir todas em tamanho grande, numa grande lista, enquanto o cara ve a primeira, a segunda já ta sendo carregada, quando ela passa pra segunda a terceira já veio... testa e verá como funciona bem... Ok... no seu caso talves isso seja dificil agora, mas passe a pensar assim para o seu próximo site...Outra hora vou colocar aqui uns links de sites que aboliram as miniaturas...

você tá doido kra :blink: "...antigamente quando os modens eram lentos..." :unsure:

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.