Sphinter 0 Denunciar post Postado Abril 23, 2007 Bom Dia Genios do PHP =)Estou desenvolvendo uma aplicação onde meu cliente vai cadastrar um produto e inserir até 6 fotos do produto, ondé a primeira foto será a foto que aparecera na categoria será a foto principal, ja as outras aparece após o usuario clicar no produto para ter maiores informações.Ai eu estou com uma duvida de qual seria a melhor forma de resgatar essas imagens depois que o produto foi cadastrado.Eu posso inserir no BD os caminhos das 6 fotos do produto, ou eu insiro no BD apenas o caminho da pasta e depois listo todos os arquivos da pasta?Ou tem outra forma mais simples?Fico no aguardo...att,Daniel Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2007 Se houver diretórios separados para cada produto, salvar o caminho do respectivo diretório me parece mais simples, já que listar as fotos do diretório também é fácil. Mas se você não for criar um diretório para cada procuto, o negócio é cadastrar o caminho para todas as fotos. Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 23, 2007 Beraldo eu vo ter um problema se eu for salvar o caminho do diretorio,Porque eu preciso ter uma das imagens a principal que vai ser listado na categoria, ai como que eu vo fazer pra "setar" a tal da imagem como a principal? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2007 Ao fazer o upload delas, você pode renomeá-las usando números. Nesse caso, a número um seria a principal. Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
Hospeda SUL 0 Denunciar post Postado Abril 23, 2007 Olá amigo, tambem estou desenvolvendo uma aplicação a um cliente semelhante, porem com três fotos. È bem simples. Acredito que a forma mais simples é você criar uma pasta chamada produtos e la dentro colocar todas as fotos. Quando inserilas no banco de dados, basta inserir apenas o nome da foto ex um forma de renomear cada foto: <?$nome = time(); //Determina a foto um nome que já mais se repetira.$nome_foto1 = $nome."1.jpg";$nome_foto1 = $nome."2.jpg";$nome_foto1 = $nome."3.jpg";$nome_foto1 = $nome."4.jpg";$nome_foto1 = $nome."5.jpg";?> Esta é uma forma simples somente um exemplo o nome de cada foto vai sair mais ou menos desta forma: 1855132101.jpg 1855132102.jpg 1855132103.jpg 1855132104.jpg 1855132105.jpg Dai inserindo o nome das fotos quando você for inserilas basta inserilas mais ou mesmo desta forma: <img src="/caminhodafoto/diretorio/<? echo $resultado_do_db; ?>"> Assim ele insere o caminho e diretorio normal para cada foto, so muda a variavel resultado do db... Acho que era isso qualquer coisa posta ai novamente ! Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 23, 2007 Beraldo desculpe minha ignorancia.. =P Mas eu to com uma duvida de como eu iria fazer pra renomear as fotos... Segue a parte do script que faz o upload. for ($indice=0;$indice<count($arquivos);$indice++) { if (!empty($arquivos_name[$indice]) and is_file($arquivos[$indice])) { $dir1 = "../fotos/$dire2"; $caminho = $dir1."/".$arquivos_name[$indice]; copy($arquivos[$indice],$caminho); $msg[] = "Arquivos enviados com sucesso!"; } } Editando: Hospeda SUL, eu ja tenho uma classe que está fazendo os uploads, meu problema é mesmo setar uma imagem principal uma imagem de capa. Mas vlw pela ajuda ai kra ;) Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2007 Você tem que pegar $arquivos_name[$indice] e usar explode() para separar o nome nos pontos, para separar o nome da extensão. Após isso, adicione um número (póde ser o próprio $indice) ao nome e concatene a extensão a esse valor. Por exemplo: $nome = "foto.do.beraldo.jpg"; $f = explode(".", $nome); $f[(count($f) -2 )] .= $indice; echo implode(".", $f); Esse é o raciocínio. ;) Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 23, 2007 Humm entendi ;)Vlw Beraldo..Vo tentar aqui.Se der pau eu volto a postar :DFlw Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 23, 2007 Ahn... Problemas... =P As fotos estão continuando com os mesmos nomes da que eu envio pelo upoload.. nao está renomendo pra 1, 2, 3, 4 e etc.. =( for ($indice=0;$indice<count($arquivos);$indice++) { if (!empty($arquivos_name[$indice]) and is_file($arquivos[$indice])) { $f = explode(".", $arquivos_name[$indice]); $f = $indice.$f[2]; $nome = implode(".", $f); $dir1 = "fotos/$dire2"; $caminho = $dir1."/".$nome; copy($arquivos[$indice],$caminho); $msg[] = "Arquivos enviados com sucesso!"; } } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 23, 2007 O problema está aqui: $f = $indice.$f[2]; $nome = implode(".", $f); Você transforma $f em string e depois a coloca no implode(), por isso não funciona. Faça como eu propus, já que nem sempre a foto terá um oi dois pontos somente. O nome foto.do.beraldo.jpg após o explode() ficará assim: [0] foto [1] do [2] beraldo [3] jpg São quatro índices; representemos esse total por "n" (n = 4 nesse caso). O último índice é (n - 1) , 3 nesse caso. Como o número não pode ser inserido na extensão do arquivo, deve-se inseri-lo no valor da chave (n - 2). ;) Faça assim: for ($indice=0;$indice<count($arquivos);$indice++) { if (!empty($arquivos_name[$indice]) and is_file($arquivos[$indice])) { $f = explode(".", $arquivos_name[$indice]); $f[(count($f) -2 )] .= $indice; $nome = implode(".", $f); $dir1 = "fotos/$dire2"; $caminho = $dir1."/".$nome; copy($arquivos[$indice],$caminho); $msg[] = "Arquivos enviados com sucesso!"; } } Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
Sphinter 0 Denunciar post Postado Abril 23, 2007 Humm... Beraldo.. Desculpe ficar te enxendo tanto assim... Eu entendi a tua explicação, tentei mudar ela porque eu preciso que ele crie as imagens assim: se eu mandar uma imagem com o nome xyz.jpg ele transforma em 1.jpg se eu mandar uma imagem com o nome bbc.jpg ele transforma em 2.jpg e assim por diante... até as 6 fotos.. Esse código ta fazendo assim: Envio Transforma xyz.jpg => xyz1.jpg bbc.jpg => bbc2.jpg vvv.jpg => vvv3.jpg Ele está adicionando os numeros depois do nome do arquivo... Como que eu faria pra ele ignorar o nome do arquivo e pra renomear pra 1, 2, 3, 4, 5 .... vlw [RESOLVIDO] Desculpa a perturbação ai... Eu pensei um poquinho aqui e consegui fazendo assim: for ($indice=0;$indice<count($arquivos);$indice++) { if (!empty($arquivos_name[$indice]) and is_file($arquivos[$indice])) { $nome = $indice.'.jpg'; $dir1 = "fotos/$dire2"; $caminho = $dir1."/".$nome; copy($arquivos[$indice],$caminho); $msg = "Arquivos enviados com sucesso!"; } } Vlw a ajuda ai Beraldo ;) Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 24, 2007 E se a imagem for do tipo GIF ou PNG...? ;) Eu faria assim: Daria um explode() no nome do arquivo, separando-o pelo ponto. Em seguida, usaria end() para pegar o último elemento do array, que é a extensão do arquivo. Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites