Ir para conteúdo

Arquivado

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

Ramael

[Resolvido] Carregar imagens aleatorias de uma pasta

Recommended Posts

Salve povo,

 

Estou recorrendo a vocês, pois não consegui encontrar o que estou precisando.....”Mr Óbvio”. Utilizei a busca aqui do fórum e até encontrei um tópico sobre isso (aqui), mas não me pareceu ser bem o que estou procurando, parece que só foi apontado uma solução para efeito de transição.

 

...vamos a dúvida:

 

Estou fazendo um site para mostrar imagens, mas não há um número específico de imagens, elas ficarão em uma determinada pasta podendo ter ou não adição de outras imagens e também não há uma seqüência numérica de nomes.

 

Quando o site fosse carregado, já entraria uma imagem, e a cada clique de um botão a imagem mudaria aleatoriamente.

 

Meus conhecimentos de javascript são um tanto quanto limitados, estou aprendendo na medida que vou utilizando... ...acho que no meu caso tenho que usar um Array..... mas como fazer o Array ler a pasta ??

 

Agradeço a ajuda,

 

 

T+

Ramael

 

ps.: Vale lembrar que as imagens que me refiro estarão online, em uma pasta no servidor e não no computador local.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não me engano JavaScript nao possui o poder de acessar recursos do sistema operacional.

 

O que voce pode fazer é montar em PHP com um banco de dados um sistema onde, em cada upload, o nome da foto é gravado em alguma tabela 'fotos', digamos, no banco de dados, e essa tabela teria um campo ID 'auto-increment'. Entao, com PHP voce sorteia um numero aleatorio que fosse menor do que o maior ID dessa tabela 'foto's , e usuaria SQL pra fazer uma query nesse ID sorteado (aleatorio), desse modo a query iria trazer uma foto "aleatoria" (nunca será 100% aleatório) cada vez que ela fosse executada.

 

Pode parecer um pouco complicado se voce nao conhece PHP, mas se conhece deve ter sido bem claro. Abracos !

 

OBS: Se alguem souber que é possivel fazer isso com javascript puro respondam, porque seria interessante !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, vlw pela resposta Luis....

 

Não sei se entendi muito bem o que você disse sobre o JS acessar o SO..... As imagens que me refiro estarão online, em uma pasta de imagens do servidor. Com JavaScript consigo fazer mudar de imagens, mas tenho que especificar o caminho de cada imagem, por exemplo mudando o background de um DIV, já achei alguns scripts que fizeram isso com um array.

 

Mas com o eu disse, tenho que especificar todas as imagens nesse Array...

 

O que você disse do PHP não me foi tão obscuro....rsss.... pensei em tentar algo assim, mas com JS mesmo, pois se meus conhecimento em JS já são parcos, imagina em PHP... pensei em fazer um arquivo de texto (online) com o nome de todas as imagens e com JS buscar aleatoriamente um nome ali dentro...

 

...é meio absurdo o que estou propondo ???

 

Vlw pela paciência ^^

 

t+

Ramael

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.. realmente js não acessa uma pasta assim.. (pelo menos não tô lembrando de nada que faça isso).

 

se você vai fazer um arquivo texto, e fazer o js ler esse arquivo, faz logo o array uê!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm..... é mesmo....

 

Mas minha preocupação é que o arquivo fique muito pesado para se executar. Hoje tenho 500 imagens, então o array seria de 500 itens, não ficaria muito pesado pra rodar isso ??

 

Dando umas vi que posso ler um TXT com um tal de ActiveXObject, mas ele trata o TXT como texto bruto e ainda só funciona em IE.

 

Se não ficar muito pesado, vou fazer com Array mesmo, afinal só eu que atualizarei o site e mexerei no JS, não preciso criar uma ferramenta pra atualizar..... pelo menos agora não.

 

Com PHP a solução me parece mais interessante, elegante e funcional, mas ainda não sei nada de PHP. Alguém saberia indicar um “caminho das pedras” pra fazer isso com PHP ??

 

Só pra não esquecer: Fica muito “pesado” um array de 500 itens ??

 

Mais uma vez: Vlw pelas orientações pessoal !!

 

 

T+

Ramael

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com PHP a solução me parece mais interessante, elegante e funcional, mas ainda não sei nada de PHP. Alguém saberia indicar um “caminho das pedras” pra fazer isso com PHP ??

função glob() pra ler o diretorio:

 

http://php.net/glob

 

Só pra não esquecer: Fica muito “pesado” um array de 500 itens ??

não. Mas assim, qntos desses 500 você vai sortear ? apenas um ?

então compensa bem mais você só mandar esse unico pro js, filtrando antes com server-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom.... pra não me complicar a vida ainda mais, fiz o array gigante mesmo, acho que a principio vai servir assim mesmo, mas aí esbarrei em outro pequeno complicador:

 

Decidi que além daquele botão de mudar a imagem aleatoriamente, haverá um botão para avançar e outro para retroceder. Mas eles devem retroceder e avançar a partir do ponto "aleatório" que inicialmente foi dado. Deu pra entender ??

 

O meu problema (de leigo) é que a pessoa poderá ir clicando somente no botão avançar, então o meu valor inicial terá sempre a adição ou subtração de 1. Acho que aí tenho que usar um "loop for".... mas acabei me perdendo... por que mesmo clicando no avançar ou retroceder o aleatório do array é executado e atualizado, então essa adição seria no "novo aleatório" e não do ponto aleatório inicial..... tô perdido mesmo, repararam ??

 

Vlw a paciência pessoal....

 

 

 

t+

Ramael

 

ps.: Tentei mudar o título do tópico para somente "Carregar imagens aleatorias", pois já vi que somente com JS não dá pra fazer mesmo, mas o fórum não permite isso.

 

@Edit: Rsssss.... Acho que só de escrever o problema, já ajuda. Depois que postei aqui, reli o que escrevi e encontrei a solução mais óbvia e simples, que estava na cara. Coloquei todo o "random" dentro do IF apontado pelo botão de aleatório e no fim ele atualiza uma "variável global". Que posso usar nos botões avançar e retoceder, para caminhar pelo array gigante, sem executar a parte do random.

 

Acho que pode colocar esse assunto como resolvido, quando começar a me bater com o PHP para melhorar o site, com certeza voltarei a esse assunto. Vlw pessoal. ^^

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.