
Inserir Imagens No Bd
#1
Posted 12/08/2008, 02:38
Gostaria de saber como faço para inserir imagens no bd, direto no phpMyAdmin e também usando formulário. Achei alguns tutoriais, mas ainda não entendi bem.
Sei que posso inserir a imagem direto no bd com o tipo de campo blob (Acho que é isto), mas ví que o mais recomendado seria salvar a imagem numa pasta e colocar apenas o nome ou endereço da imagem no bd.
Estou meio confuso de como criar as pastas no bd para alocar as informações das imagens (Nome, tipo, tamanho, etc.) e também do script php para fazer o upload e visualização, pois nos tutoriais que vi estão cada um de uma forma.
*Estou testando localmente com o Wampserver 2.0.
Se alguém puder me ajudar ficarei muito grato...
#2
Posted 12/08/2008, 09:03
- Script de upload de imagem
- Se enviado, captura alguns dados (nome, extensão, largura, altura), e gravo no BD como VARCHAR, e para dados numéricos
- Depois uso um sistema de thumbnails, caso precise... por isso resgato altura e largura, pra fazer as proporções de imagem certas!
é isso msmo, recomendadissimo.mas ví que o mais recomendado seria salvar a imagem numa pasta e colocar apenas o nome ou endereço da imagem no bd.
você já trabalhou com uploads? com funçoes tipo... getimagesize, essas coisas, move, copy...
ah, recomendo você testar online, não local... por causa da hierarquia de arquivos e pastas!
dependendo do seu conhecimento, a gente te ajuda a dar um jeito nisso aí!

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#3
Posted 13/08/2008, 19:20
Estou vendo agora uploads de arquivos, sou iniciante em PHP. Mas consegui fazer upload das imagens.
criei uma pasta chamada "fotos" no C:/wamp/www/"fotos" e também criei um bd "imagem" uma tabela chamada "fotos" com os campos "id" e "nome".
Faço upload através deste formulário:
<html> <head><title>Form imagem</title></head> <body> <center><h2>Formulário de imagens</h2> <form name="form1" method="POST" action="foto.php" enctype="multipart/form-data"> <p><input type="file" name="arquivo"></p> <p><input type="submit" name="enviar" value="Enviar"></p></center> </form> </body> </html>
E aquí o código em php que insiro a imagem na minha pasta "fotos" no C: e salvo o nome dela no bd:
<?php if(isset($_FILES["arquivo"])){ $arquivo = $_FILES["arquivo"]; $pasta_dir = "fotos/";//diretorio dos arquivos //se nao existir a pasta ele cria uma } if(!file_exists($pasta_dir)){ mkdir($pasta_dir); } $arquivo_nome = $pasta_dir . $arquivo["name"]; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"],$arquivo_nome); include "conectar.php"; mysql_query("INSERT INTO fotos VALUES ('$arquivo_nome')"); ?>
Até ai tudo bem, só que agora estou tendo problemas para visualizar as imagens.
tentei com esse código:
<?php $sql = "Select * from fotos"; $query = mysql_query($sql); while($row = mysql_fetch_array($query)){ $fotos = $row["fotos"]; echo "\$fotos\"> } ?>
mas não deu deu certo.
Achei esse outro código aqui do Júlio César Martini:
<? include "conecta.php"; //Conecta com a base de dados ?> <html> <head> <title>iMasters</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <? $sql = mysql_query("SELECT * FROM fotos ORDER BY RAND()",$con) or die("erro no SQL: ".mysql_error()); ?> <img src="fotos/<?echo mysql_result($sql,0,"fotos");?>"> </body> </html>
Também não funcionou.
Só aparece isso "> na página e não mostra nenhum mensagem de erro!!!
Ouvi falar que pode fazer uma página separada para exibir as imagens usando a tag "img" mais ou menos assim:
$dir = "Diretório"; $conecta=mysql_connect("localhost","root"); mysql_select_db("bancodedados",$conecta); $sql= "Select nome_foto from Tabela"; $exe = mysql_query($sql, $conecta); while ($campo = mysql_fetch_array($exe)) { <img scr=<? print "$dir/$campo[nome_foto]"; ?>> <? } ?>
Se puder me ajudar a solucionar mais essa dúvida!!!
Ahhh!, achei bem interessante o que você falou sobre esse sistema de thumbnails. Se puder comentar mais sobre ele pra eu ter uma idéia aqui.
Na verdade o que eu gostaria de fazer seria exibir as imagens numa página a partir do nome ou endereço delas no bd, primeiro aparecendo em thumbnails e depois quando clicar em cima aumenta o tamanho (Original) delas, também exibindo o nome da imagem, tamanho, tipo e alguns comentários sobre elas. Também como organizar as imagens na página usando tabelas, colocar no centro, ordem em que elas aparecem...
Mais uma vez... Muito obrigado!!!
#4
Posted 13/08/2008, 20:53

Tendo a imagem salva fora do BD, se você apagar acidentalmente a imagem ou o registro do BD e não fizer o mesmo com o outro, terá uma quebra de integridade.
O BD controla isso, portanto... é mais seguro!
Só que consome mais recursos do servidor (nada tão significativo tbm...) e é mais complicado.
Portanto, se o upload for de um avatar, por exemplo, não precisa gravar no bd.... Keep It Short and Simple

Mas se for um documento, por exemplo, é preferível que você guarde no BD e tenha garantia de integridade.
---
Se o seu último script não está mostrando as fotos é porque provavelmente o que vocÊ colocou na variável $dir não é o caminho até essa imagem

#5
Posted 15/08/2008, 22:28
Valeu pela explicação boirock!!!
Mas a coisa aqui tá meio complicada, ainda não consegui visualizar a imagem.
Vou falar como eu estou fazendo:
1º criei uma pasta chamada "minhas_imagens" no diretório onde está instalado o meu Wamp que é C:/wamp/www/"minhas_imagens";
2º Criei um banco de dados através do phpMyAdmin chamado "imagens" e uma tabela chamada "fotos" com os campos "id"(int) e "foto"(varchar);
3º Criei um formulário para fazer a inserção das imagens:
form_imagem.html
<html> <head><title>Formulário de imagens</title></head> <body> <center><h2>Formulário de imagens</h2> <form name="form1" method="POST" action="inserir.php" enctype="multipart/form-data"> <p><input type="file" name="arquivo"></p> <p><input type="submit" name="enviar" value="Enviar"></p> </form></center> </body> </html>4º Criei o arquivo em php para pegar os dados do form e salvar a imagem na pasta e o nome no bd:
inserir.php
<?php if(isset($_FILES["arquivo"])){ $arquivo = $_FILES["arquivo"]['name']; $pasta_dir = "fotos/";//diretorio dos arquivos //se nao existir a pasta ele cria uma }if(!file_exists($pasta_dir)){ mkdir($pasta_dir); } $arquivo_nome = $pasta_dir . $arquivo["name"]; // Faz o upload da imagem move_uploaded_file($arquivo["tmp_name"],$arquivo_nome); include "conectar.php"; mysql_query("INSERT INTO fotos VALUES ('', '$arquivo["name"]')"); ?>Daí, fica assim no meu BD:
id======foto
1======minhas_imagens/amostra.jpg
5º Criei um arquivo em php para exibir/visualizar a imagem:
exibir.php
<?php include "conectar.php"; //Conecta com a base de dados $sql="SELECT * FROM fotos"; $resultado=mysql_query($sql); $dir ="minhas_imagens/"; while ($linha = mysql_fetch_array($resultado)) { $imagem = $linha['foto']; } echo '<img src="$dir/$imagem">'; ?>Mas não aparece a imagem só aquela moldura e não mostra erro algum.
Já fiz de tudo quanto é jeito, mas a *?*! da imagem não aparece.
Por favor alguém poderia me dizer o que estou fazendo de errado!!!
Desde já grato pela atenção!!!
E aí galera, me ajudem...façam pelo menos alguns comentários, que já vai me ajudar a saber o que pesquisar/estudar mais, blz!!!
Valeu!!!!
E aí galera, me ajudem...façam pelo menos alguns comentários, que já vai me ajudar a saber o que pesquisar/estudar mais, blz!!!
Valeu!!!!
Edição feita por: lwirkk, 15/08/2008, 20:45.
Adicionado a tag [code]/[codebox] para melhor visualização do código-fonte.
#6
Posted 15/08/2008, 23:48
pos vc ja definiu o diretorio qnd vai pro bd

testa efala ai
abraço
#7
Posted 18/08/2008, 16:09
Por isso que dá erro

Faça o que nosso amigo disse acima.
Até mais

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador
Twitter: HostCheap
#8
Posted 18/08/2008, 19:57
Usei esse script:
<?php
include "conectar.php";
$SQL = "SELECT * FROM fotos";
$result_id = mysql_query($SQL) or die(mysql_error());
$total = mysql_num_rows($result_id);
// é aqui pra baixo que você precisa pra ver a foto
if($total)
{
// Abre tabela HTML
echo "<table border=1 cellpadding=3 cellspacing=0>\n";
echo "<tr><th>Imagem</th></tr>\n";
// Efetua o loop no banco de dados
while($dados = mysql_fetch_array($result_id))
{
echo "<tr><td><img width=\"350\" height=\"350\" src=\"" . $dados["foto"] . " \" ><br>ID: ".$dados["id"]."</td>";
echo "</tr>\n";
}
// Fecha tabela
echo "</table>\n";
}else{
echo "Nenhuma Foto Cadastrada";
}
?>
Só que surgiu mais algumas dúvidas (Pra variar, rsrsrs), mas iniciante é assim mesmo.
Agora quando eu inserir no bd apenas o nome da imagem e não o endereço mais o nome, como ficaria o script para eu poder visualizar?
Tenho uma pasta chamada "minhas_imagens" criada no C:/wamp/www/.
Estava assim antes o meu bd (Este é o que está funcionando):
id foto
1 minhas_imagens/amostra.jpg
Agora eu coloquei assim:
id foto
1 amostra.jpg
==================================================================
Agora como eu faria para visualizar primeiro em miniatura (Thumbnails) e depois quando eu clicar na imagem ela abrir em outra página no tamanho original?
E também visualizar as imagens lado a lado, e quando por exemplo, estiver preênchido 4 imagens, lado a lado, automaticamente pula uma linha ou uma célula da tabela para então proceder da mesma forma que na linha de cima, como uma galeria de fotos?
Obrigado a todos por me ajudar!!!!
Se precisar de alguma ajuda, se estiver ao meu alcance, ficarei muito grato em ajudar também!!!
#9
Posted 29/10/2017, 19:09
Cialis Munchen cialis price Amoxicillin And Leave And Body Priligy Duracion Tratamiento Viagra Forum Wirkung
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)