Introdução Ao Uso de Imagens No MySQL
-
Upload
warllen-almas -
Category
Documents
-
view
19 -
download
0
Transcript of Introdução Ao Uso de Imagens No MySQL
Introdução ao uso de imagens no MySQLEm muitas aplicações comerciais ou científicas é necessário que se armazenem imagens na base de dados. Apesar de muitos especialistas garantirem que é mais eficiente armazenar imagens em arquivos ao invés de tabelas, não são raros aqueles que sentem dificuldade em gerenciar arquivos fora do banco de dados. Por esta razão este artigo foi desenvolvido. Nele apresentamos uma introdução (simples) sobre o armazenamento de imagens em tabelas MySQL utilizando a linguagem PHP.
5
Gostei (2)
(0)
1. Introdução
Em muitas aplicações comerciais ou científicas é necessário que se
armazenem imagens na base de dados. Apesar de muitos
especialistas garantirem que é mais eficiente armazenar imagens em
arquivos ao invés de tabelas, não são raros aqueles que sentem
dificuldade em gerenciar arquivos fora do banco de dados. Por esta
razão este artigo foi desenvolvido. Nele apresentamos uma
introdução sobre o armazenamento de imagens em tabelas MySQL
utilizando a linguagem PHP.
2. Tipos blob
Como você deve saber existe uma série de tipos de campos definidos
no MySQL: inteiros, texto regular, números reais, etc. A diferença
principal entre estes campos (tipos primários) e o blob é
principalmente a quantidade de informação que se consegue
armazenar.
Um blob é um campo binário grande que pode uma gama variada de
dados. Os quatro tipos blob existentes no MySQL são: TINYBLOB,
BLOB, MEDIUMBLOB, e LONGBLOB. Estes tipos diferem apenas no
tamanho máximo de bytes que podem armazenar. É neste tipo de
campo que armazenamos imagens no MySQL.
3. Criando a tabela no banco
O script abaixo nos mostra como criar uma tabela no MySQL que
contenha um campo blob. A tabela que iremos criar se chama
PESSOA e contém um ID (Chave primária) e a imagem da pessoa.
CREATE TABLE PESSOA ( PES_ID int NOT NULL AUTO_INCREMENT PRIMARY KEY, PES_IMG BLOB );
4. Inserindo a imagem na tabela criada
Um exemplo de um script PHP que carrega uma imagem em memória e a armazena na
tabela MySQL é exibido a seguir. No script, assume-se que o nome do file field é
“Imagem”
If($Imagem != "none") {
$TamanhoImg = filesize($Imagem); $mysqlImg = addslashes(fread(fopen($Imagem, "r"), $ TamanhoImg)); mysql_connect($host,$username,$password) or die("Impossível Conectar"); @mysql_select_db($db) or die("Impossível Conectar"); mysql_query("INSERT INTO PESSOA (PES_IMG) VALUES ('$mysqlImg')") or die("O sistema não foi capaz de executar a query"); } else { echo"Você não realizou o upload de forma satisfatória."; } ?>
Este trecho é simplesmente o necessário para se inserir uma imagem
em um banco de dados MySQL. É importante que se cheque o packet
size máximo configurado no servidor MySQL. Caso este valor esteja
muito pequeno podem ocorrer erros de gravação do arquivo na
tabela.
5. Exibindo as imagens gravadas anteriormente
Neste ponto já sabemos como gravar as imagens na tabela. Mas de
que adianta gravarmos se não conseguirmos recuperá-las? O trecho
de código para recuperação das figuras é um pouco mais complicado
do que o código de armazenamento. Entretanto, não podemos
considerá-lo um código extremamente complicado. A seguir segue o
código de recuperação de imagens:
mysql_connect($host,$username,$password) or die("Impossível conectar ao banco."); @mysql_select_db($db) or die("Impossível conectar ao banco");
$result=mysql_query("SELECT * FROM PESSOA") or die("Impossível executar a query"); While($row=mysql_fetch_object($result)) {
echo " PicNum \">"; } ?>
mysql_connect($host,$username,$password) or die("Impossível conectar ao banco."); @mysql_select_db($db) or die("Impossível conectar ao banco."); $result=mysql_query("SELECT * FROM PESSOA WHERE PES_ID=$PicNum") or die("Impossível executar a query "); $row=mysql_fetch_object($result); Header( "Content-type: image/gif"); echo $row->Image; ?>
Bem, apesar do exemplo ser simples, espero ter ajudado aos iniciantes no
armazenamento de imagens em bancos de dado MySQL.
Daniel Cardoso Moraes De Oliveira
Obteve o título de Bacharel em Ciência da Computação em 2004 pela Universidade Federal do Rio
de Janeiro (IM/DCC) e o de Mestrado em 2008, pela COPPE/UFRJ. Atualmente realiza o seu
Doutorado na Linha de Banco de Dados, no PESC - C [...]
Leia mais em: Introdução ao uso de imagens no MySQL http://www.devmedia.com.br/introducao-ao-uso-de-imagens-no-mysql/10041#ixzz2xrrUVTk5
Gente acho que consegui, está meio
grotesco o código, se estiver por favor me
falem, mas gostaria agora de pegar do
banco de dados e mostrar em uma JSP como
faço, não tenho a menor idéia?!
Formulario
view plain copy to clipboard print ?
1. <form action="conecta.jsp" method="post" id="form" name="form">
2. arquivo<input type="file" value="imagem">
3.4. <input
type="submit" value="Enviar">5.6. </form>
Grava os Dados no banco
view plain copy to clipboard print ?
1. <%2. Connection conn = null;3.4.5. try{6. Class.forName
("com.mysql.jdbc.Driver").newInstance();
7. conn= DriverManager.getConnection("jdbc:mysql://localhost/estudo","root","123");
8. out.println("conectado ao banco");
9.10. PreparedStatement
stmt = conn.prepareStatement("insert into imagem(imagem)values(?)");
11. stmt.setString(1, "imagem");
12. stmt.execute();13. stmt.close();
14. }catch(ClassNotFoundException e){
15. e.printStackTrace();
16. }17. %>
05/03/2009 13:59:09
Assunto: Re:Cadastrar Imagem no mysql usando JSP
snowblacksoul Virtual Machine Man
Membro desde: 27/04/2008 11:46:37Mensagens: 564 Offline
Gente acho que conseguir gravar no banco
de dados, mas acho que meu código está
grotesco se tiver por favor falem pra que
possa melhorar. Agora gostaria de mostrar
em uma JSP a imagem que gravei no banco
como faço, essa não tenho a menor idéia!!!
view plain copy to clipboard print ?
1. <%2. Connection conn
= null;3. //String user =
"root";4. //String password =
"123";5. //String
url="jdbc:mysql://localhost/estudo","root","123");
6. //conectar com o banco de dados
7. try{8. Class.forName
("com.mysql.jdbc.Driver").newInstance();
9. //return DriverManager.getConnection(url,user,password);
10. conn= DriverManager.getConnection("jdbc:mysql://localhost/estudo","root","123");
11. out.println("conectado ao banco");
12.13. PreparedStatement
stmt = conn.prepareStatement("insert into imagem(imagem)values(?)");
14. stmt.setString(1, "imagem");
15. stmt.execute();16. stmt.close();17.
}catch(ClassNotFoundException e){
18. e.printStackTrace();
19. }20. %>
05/03/2009 14:02:14
Assunto: Cadastrar Imagem no mysql usando JSP
paulofernandesjr JavaEvangelist
Membro desde: 04/10/2007 12:36:58Mensagens: 477 Localização: São Paulo - Capital Offline
cade o upload?
Paulo Fernandes Desenvolvedor Java
Aprenda CSS Twitter
05/03/2009 14:10:34
Assunto: Re:Cadastrar Imagem no mysql usando JSP
snowblacksoul Virtual Machine Man
Cara lá em cima tem o formulario que pega a imagem
05/03/2009 14:12:39
Assunto: Cadastrar Imagem no mysql usando JSP
paulofernandesjr JavaEvangelist
Membro desde: 04/10/2007 12:36:58Mensagens: 477 Localização: São Paulo - Capital Offline
você esta vendo a imagem no servidor?
esta meio estranho, pois o seu formulario é para o envio de imagem e você não esta nem recuperando os dados que foram enviados via post
This message was edited 1 time. Last update was at 05/03/2009 14:13:04
Paulo Fernandes Desenvolvedor Java
Aprenda CSS Twitter
05/03/2009 14:23:09
Assunto: Re:Cadastrar Imagem no mysql usando JSP
snowblacksoul Virtual Machine Man
mas já esta gravando
05/03/2009 14:57:03
Assunto: Re:Cadastrar Imagem no mysql usando JSP
snowblacksoul Virtual Machine Man
Membro desde: 27/04/2008 11:46:37Mensagens: 564 Offline
è esta gravando texto ao invés de imagem!! como fazer entao o upload?!
05/03/2009 15:01:34
Assunto: Cadastrar Imagem no mysql usando JSP
paulofernandesjr JavaEvangelist
Membro desde: 04/10/2007 12:36:58Mensagens: 477 Localização: São Paulo - Capital Offline
http://www.google.com.br/search?q=jsp+upload&ie=ut...t-BR:official&client=firefox-a
Paulo Fernandes Desenvolvedor Java
Aprenda CSS