Introdução Ao Uso de Imagens No MySQL

11
Introdução ao uso de imagens no MySQL 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 (simples) sobre o armazenamento de imagens em tabelas MySQL utilizando a linguagem PHP. 5 Gostei (2) (0) 1. Introdução

Transcript of Introdução Ao Uso de Imagens No MySQL

Page 1: 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.

Page 2: Introdução Ao Uso de Imagens No MySQL

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") { 

Page 3: Introdução Ao Uso de Imagens No MySQL

$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"); 

Page 4: Introdução Ao Uso de Imagens No MySQL

$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 [...]

Page 5: Introdução Ao Uso de Imagens No MySQL

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();

Page 6: Introdução Ao Uso de Imagens No MySQL

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

Page 7: Introdução Ao Uso de Imagens No MySQL

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

   

Page 8: Introdução Ao Uso de Imagens No MySQL

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

   

Page 9: Introdução Ao Uso de Imagens No MySQL

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