Академический Документы
Профессиональный Документы
Культура Документы
Em muitas aplicaes comerciais ou cientficas necessrio que se armazenem imagens na base de dados. Apesar de muitos especialistas garantirem que mais eficiente armazenar imagens em arquivos ao invs de tabelas, no so raros aqueles que sentem dificuldade em gerenciar arquivos fora do banco de dados. Por esta razo este artigo foi desenvolvido. Nele apresentamos uma introduo (simples) sobre o armazenamento de imagens em tabelas MySQL utilizando a linguagem PHP.
5
Em muitas aplicaes comerciais ou cientficas necessrio que se armazenem imagens na base de dados. Apesar de muitos especialistas garantirem que mais eficiente armazenar imagens em arquivos ao invs de tabelas, no so raros aqueles que sentem dificuldade em gerenciar arquivos fora do banco de dados. Por esta razo este artigo foi desenvolvido. Nele apresentamos uma introduo sobre o armazenamento de imagens em tabelas MySQL utilizando a linguagem PHP.
2. Tipos blob
Como voc deve saber existe uma srie de tipos de campos definidos no MySQL: inteiros, texto regular, nmeros reais, etc. A diferena principal entre estes campos (tipos primrios) e o blob principalmente a quantidade de informao que se consegue armazenar. Um blob um campo binrio grande que pode uma gama variada de dados. Os quatro tipos blob existentes no MySQL so: TINYBLOB, BLOB, MEDIUMBLOB, e LONGBLOB. Estes tipos diferem apenas no tamanho mximo de bytes que podem armazenar. neste tipo de campo que armazenamos imagens no MySQL.
CREATE TABLE PESSOA ( PES_ID int NOT NULL AUTO_INCREMENT PRIMARY KEY, PES_IMG BLOB );
If($Imagem != "none") {
$TamanhoImg = filesize($Imagem); $mysqlImg = addslashes(fread(fopen($Imagem, "r"), $ TamanhoImg)); mysql_connect($host,$username,$password) or die("Impossvel Conectar"); @mysql_select_db($db) or die("Impossvel Conectar"); mysql_query("INSERT INTO PESSOA (PES_IMG) VALUES ('$mysqlImg')") or die("O sistema no foi capaz de executar a query"); } else { echo"Voc no realizou o upload de forma satisfatria."; } ?>
Este trecho simplesmente o necessrio para se inserir uma imagem em um banco de dados MySQL. importante que se cheque o packet size mximo configurado no servidor MySQL. Caso este valor esteja muito pequeno podem ocorrer erros de gravao do arquivo na tabela.
Neste ponto j sabemos como gravar as imagens na tabela. Mas de que adianta gravarmos se no conseguirmos recuper-las? O trecho de cdigo para recuperao das figuras um pouco mais complicado do que o cdigo de armazenamento. Entretanto, no podemos consider-lo um cdigo extremamente complicado. A seguir segue o cdigo de recuperao de imagens:
mysql_connect($host,$username,$password) or die("Impossvel conectar ao banco."); @mysql_select_db($db) or die("Impossvel conectar ao banco"); $result=mysql_query("SELECT * FROM PESSOA") or die("Impossvel executar a query");
mysql_connect($host,$username,$password) or die("Impossvel conectar ao banco."); @mysql_select_db($db) or die("Impossvel conectar ao banco."); $result=mysql_query("SELECT * FROM PESSOA WHERE PES_ID=$PicNum") or die("Impossvel 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.
Obteve o ttulo de Bacharel em Cincia da Computao 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 [...]
MySQL http://www.devmedia.com.br/introducao-ao-uso-de-imagens-nomysql/10041#ixzz2xrrUVTk5
Gente acho que consegui, est meio grotesco o cdigo, se estiver por favor me falem, mas gostaria agora de pegar do banco de dados e mostrar em uma JSP como fao, no tenho a menor idia?! Formulario
view plaincopy to clipboardprint?
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>
1. <% 2. Connection conn = null; 3. 4. 5. try{ 6. Class.forName("com.mys ql.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, "ima gem"); 12. stmt.execute(); 13. stmt.close(); 14. }catch(ClassNotFoundExce ption e){ 15. e.printStackTrace( ); 16. }
17.
%>
snowblacksoul
Virtual Machine Man
Gente acho que conseguir gravar no banco de dados, mas acho que meu cdigo 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 fao, essa no tenho a menor idia!!!
view plaincopy to clipboardprint?
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.mys ql.jdbc.Driver").newInstance(); 9. //return DriverManager.getConnection(url,us er,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, "ima gem"); 15. stmt.execute(); 16. stmt.close(); 17. }catch(ClassNotFoundExce ption e){ 18. e.printStackTrace( );
19. 20.
} %>
paulofernandesjr
JavaEvangelist
cade o upload?
Membro desde: 04/10/2007 12:36:58 Mensagens: 477 Localizao: So Paulo - Capital Offline
snowblacksoul
Virtual Machine Man
paulofernandesjr
JavaEvangelist
voc esta vendo a imagem no servidor? esta meio estranho, pois o seu formulario para o envio de imagem e voc no 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
Membro desde: 04/10/2007 12:36:58 Mensagens: 477 Localizao: So Paulo - Capital Offline
snowblacksoul
Virtual Machine Man
snowblacksoul
Virtual Machine Man
paulofernandesjr
JavaEvangelist
http://www.google.com.br/search?q=jsp+upl oad&ie=ut...t-BR:official&client=firefox-a
Membro desde: 04/10/2007 12:36:58 Mensagens: 477 Localizao: So Paulo - Capital Offline