Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

29-10-2007 17:30

Para quem quer um exemplo funcional de como usar o BLOB para armazenar uma figura enviada por upload diretamente em uma tabela do banco de dados.

CRIANDO O BANCO DE DADOS imagens

CREATE TABLE `imagens` (  `id` INT(10) NOT NULL AUTO_INCREMENT,  `imagem` longblob,  `tipo` VARCHAR(32) DEFAULT NULL,  PRIMARY KEY (`id`)  )

ARQUIVO PARA UPLOAD E ARMAZENAGEM DA FOTO NO BD
* atenção os dados para conexão


<?php if($_POST) { if($_POST['MAX_FILE_SIZE'] >= $_FILES['file']['size']) { // preencha os dados de conexão abaixo mysql_connect("localhost", "login", "senha") or die(mysql_error()); mysql_select_db("bancodedados"); $photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"), $_FILES['file']['size'])); $query = sprintf("INSERT INTO imagens(imagem, tipo) VALUES ('%s', '%s')", $photo, $_FILES['file']['type']); if (mysql_query($query)) { $messages[] = "Arquivo enviado e armazenado no BD com sucesso."; } else { $messages[]= mysql_error(); } } else { $messages[] = "O arquivo tem mais de (96k), reduza o tamanho do arquivo a ser enviado."; } } ?> <? if (isset($messages)) { foreach ($messages as $message) { print $message ."<br>"; } } ?> <form action="" method="POST" enctype="multipart/form-data" name="form"> <input type="file" name="file"> <input type="hidden" name="MAX_FILE_SIZE" value="96000"> <input type="submit"> </form>

MOSTRANDO O ARQUIVO SALVO NO BD
* atenção que passamos o id do arquivo salvo pelo link para o arquivo abaixo
você pode carregar a figura por esse arquivo ou chamar esse arquivo pelo img src..


<?php // preencha os dados de conexão abaixo mysql_connect("localhost", "login", "senha") or die(mysql_error()); mysql_select_db("bancodedados"); // estearquivo.php?id=... ( salvo no BD )  $result = mysql_query(sprintf("SELECT * from imagens WHERE id = %d", $_GET['id'])); $row = mysql_fetch_array($result); header(sprintf("Content-type: %s", $row['FileType'])); print $row['imagem']; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 1

Campo BLOB

04-11-2008 21:23

:plus Amigo, na minha pagina quando foi mostrar a imagem fica em branco . alguém sabe me dizer o motivo ?
Obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

04-11-2008 21:34

Qual versão do seu PHP? Seguiu o script a risca?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

08-06-2012 20:28

Ola, eu tambem esou a ter uns pequenos problems no codigo, ao enviar sem procurar imgagem ele aparece isto "; } } ?>, e o erro normal que é de nao ter feito o procurar da foto...mas isso faz se uns if else e já este....mas depois quando vou querer mostrar a imagem aparece asssim :

<br /> <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: 1 in D:\wamp\www\Site_Maia\teste\ver.php on line <i>6</i></th></tr> <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0012</td><td bgcolor='#eeeeec' align='right'>369432</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='D:\wamp\www\Site_Maia\teste\ver.php' bgcolor='#eeeeec'>..\ver.php<b>:</b>0</td></tr> </table></font> <br /> <font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'> <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: FileType in D:\wamp\www\Site_Maia\teste\ver.php on line <i>8</i></th></tr> <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0012</td><td bgcolor='#eeeeec' align='right'>369432</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='D:\wamp\www\Site_Maia\teste\ver.php' bgcolor='#eeeeec'>..\ver.php<b>:</b>0</td></tr> </table></font>

alguem me sabe ajudar o porque disto
0
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

08-06-2012 20:33

e como faço para limitar o tamanho da foto sem ser no formulario? +e que eu consigo manipular isso no firebug....so que eu nao sei como fazer o codigo lol...ja estive a patinar mas ainda nao cheguei lá alguem me pode facultar alguma coisa?


orbigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

08-06-2012 21:48

Esse erro que está tendo provavelmente é porque está usando o Wamp. Tenta no Xampp ou em um servidor online.

Quanto ao limite do upload, você tem que pegar desse script e adaptar. Upload-total_33_873.html
0
A melhor hospedagem para o seu site HostGator!
 
Primeiras postagens
Primeiras postagens
Mensagens: 2
Sexo: Masculino

Campo BLOB

13-06-2012 07:53

Pessoal é o seguinte preciso cadastrar imagens no banco do tipo long blob o exemplo acima so mostra como cadastrar uma imagem,
quero cadastrar seis imagens para seis campos no banco, vindos de seis inputs. e exibir tbem.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 09:22

Basta seguir o mesmo processo, só que criando uma linha para cada input baseado no name.

$photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"), $_FILES['file']['size'])); 

Agora no insert original está assim

$query = sprintf("INSERT INTO imagens(imagem, tipo) VALUES ('%s', '%s')", $photo, $_FILES['file']['type']); 

Você tem que adicionar os nomes das imagens de acordo com a sua estrutura.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 09:43

eu colocquei o codigo para ver foto, mas nao estu a consrguir ver

<?php  // estearquivo.php?id=... ( salvo no BD ) $result = mysql_query(sprintf("SELECT * from imagem WHERE id ='1'")); $row = mysql_fetch_array($result); header(sprintf("Content-type: %s", $row['FileType'])); print $row['equipa']; ?>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 10:52

Realmente, o código estava desatualizado, segue aqui a parte da conexão correta

$result = mysql_query("SELECT * from imagens WHERE id = '".$_GET['id']."'"); while($dados=mysql_fetch_array($result)) { extract($dados); header(sprintf("Content-type: $tipo")); print $imagem; } 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 16:47

Boa tarde, estive a testar o sua atctualização e funciona mas tipo , dá uma mensgem a dizerque a imagem contem erros, ela tem o formato png. o campo na tabela é longblob...

Nao sei porque esta acontecer este problema


http://ipcom.pt/teste/Equipa.php
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 16:50

Segui exatamente o tutorial, inclusive testei com uma imagem png também, e funciona sem problema. Testa com outros formatos de imagem.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 17:56

bem, eu já testei....so que eu no codigo de mostrar tenho uma duvida, secalhar será por isso que nao dá.....agora ate dá este erro

Undefined index

porque eu coocquei o codigo como voce tem mesmo:

<?php  $result = mysql_query("SELECT * from imagem WHERE id = '".$_GET['id']."'"); while($dados=mysql_fetch_array($result)) { extract($dados); header(sprintf("Content-type: $tipo")); print $imagem; } ?>

mas eu tinha sem o .$_GET['id']. , e colocava o numero mesmo do id....so que nao sei porque nao mostra imagem...

já gora como é que passa o valor do id para aqui? .$_GET['id']. ?

n, estou a conseguir resulver nem encontrar o problema

:(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 18:40

Você tem que observar no bd o id da imagem que ela foi salva. Depois que souber, tem que mandar assim:

arquivo.php?id=..

Sendo uma imagem, você pode usar essa mesma regra para carregar a imagem em um img

<img src="arquivo.php?id=..">
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 19:00

Nao estou a perceber como vou passar isso

é assim?

<a href="http://localhost/Site_Maia/Equipa.php?id=3"></a> ou arquivo.php?id=1

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 19:05

Suponho que você deva ter um documento que queira mostrar a imagem salva no bd. Então você vai colocar o código que mostra a imagem, com o while em um arquivo, e chamar a imagem assim:

<img src="seuarquivo.php?id=123">

Com esse código, vai ser buscado no seuarquivo.php a imagem do id 123, e irá mostrá-la na tela.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 19:15

Sinceramente....

nao consigo

o codigo que tenho para mostrar a foto é este

<?php    $result = mysql_query("SELECT * from imagens WHERE id = '".$_GET['id']."'"); while($dados=mysql_fetch_array($result)) { extract($dados); header(sprintf("Content-type: $tipo")); print $imagem; } ?> <img src="Equipa.php?id=5">

o que manda o dado para bd é

<?php if($_POST) { if($_POST['MAX_FILE_SIZE'] >= $_FILES['file']['size']) { // preencha os dados de conexão abaixo $photo = addslashes(fread(fopen($_FILES['file']['tmp_name'], "r"), $_FILES['file']['size'])); $query = sprintf("INSERT INTO imagens(imagem, tipo) VALUES ('%s', '%s')", $photo, $_FILES['file']['type']); if (mysql_query($query)) { $messages[] = "Arquivo enviado e armazenado no BD com sucesso."; } else { $messages[]= mysql_error(); } } else { $messages[] = "O arquivo tem mais de (96k), reduza o tamanho do arquivo a ser enviado."; } } if (isset($messages)) { foreach ($messages as $message) { print $message ."<br>"; } } ?> <form action="" method="POST" enctype="multipart/form-data" name="form"> <input type="file" name="file"> <input type="hidden" name="MAX_FILE_SIZE" value="96000"> <input type="submit"> </form>

nao sei o que se esta a passar :sweat:
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 19:34

Você não pode colocar todos os códigos em um único arquivo.

Em um arquivo PHP vai ter somente o seguinte

<?php
mysql_connect("localhost", "login", "suasenha") or die(mysql_error());
mysql_select_db("seubd");
$result = mysql_query("SELECT * from imagens WHERE id = '".$_GET['id']."'");
while($dados=mysql_fetch_array($result)) {
extract($dados);
header(sprintf("Content-type: $tipo"));
print $imagem;
}
?>

Você pode chamar esse arquivo de imagem.php

em outro arquivo você tem só o seguinte

<img src="imagem.php?id=5">
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

13-06-2012 19:52

muito obrigado e desculpe estar me a esplicar mas eu já nao ia dar conta disto....obrigad
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

13-06-2012 19:54

;)
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

14-06-2012 20:07

Boa noite,....tudo bem...

BOm, eu estou a ter um problema aqui com o texto, a ser lido directamente da base de dados....ele passa para depois da minha div

ora veja

http://ipcom.pt/teste/

porque faz isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17676
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Campo BLOB

14-06-2012 20:15

Não vejo nenhuma div no código fonte perto do texto. Passe o código onde o texto é carregado.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 141
Sexo: Masculino

Campo BLOB

14-06-2012 20:17


<?php include 'Manutencao/ConnBD/conexao.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lt8"> <![endif]--> <!--[if IE 7 ]>    <html lang="en" class="no-js ie7 lt8"> <![endif]--> <!--[if IE 8 ]>    <html lang="en" class="no-js ie8 lt8"> <![endif]--> <!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]--> <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">  -->   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Home < IPcom</title>     <meta http-equiv="X-UA-Compatible" content="IE=100" > <!-- IE9 mode -->     <meta name="author" content="Rafael Baptista Loureiro"> <meta name="description" content="IPcom - Engenharia e Telecomunicações">     <meta name="keywords" content="ipcom, IPCOM,Engenharia, engenharia, telecomunicações,  telecomunicacoes,  Telecomunicações, Engenharia e Telecomunicações, Engenharia e Telecomunicacoes, IPCOM Engenharia e Telecomunicações, IPCOM Engenharia e Telecomunicacoes "/>     <link rel="Shortcut icon" href="Grafica/Imagens/favicon.ico"> <link rel="stylesheet" type="text/css" href="Grafica/Css/Login.css"> <link rel="stylesheet" type="text/css" href="Grafica/Css/Css.css"> <link rel="stylesheet" type="text/css" href="Grafica/Css/Menu.css">   <!--css/js/script slide-->    <link rel="stylesheet" href="Grafica/Themes/default/default.css" type="text/css" media="screen" />     <link rel="stylesheet" href="Grafica/Themes/pascal/pascal.css" type="text/css" media="screen" />     <link rel="stylesheet" href="Grafica/Themes/orman/orman.css" type="text/css" media="screen" />     <link rel="stylesheet" href="Grafica/Css/nivo-slider.css" type="text/css" media="screen" />     <link rel="stylesheet" href="Grafica/Css/style.css" type="text/css" media="screen" />            <script type="text/javascript" src="Grafica/Js/jquery-1.7.1.min.js"></script>     <script type="text/javascript" src="Grafica/Js/jquery.nivo.slider.pack.js"></script>     <script type="text/javascript">     $(window).load(function() {         $('#slider').nivoSlider();     });     </script>     <!--Fim_css/js/script slide--> </head>   <body> <div class="centro"> <div class="pagina_home">   <div class="cabecalho"> <div class="logotipo"> <img src="Grafica/Imagens/ipcom_logo_282x124.png" width="282" height="124" border="0" /> </div><!--Fim_logotipo-->   <div class="conect_bd">   <div class="redes"> <?php include ('Include/face.php');?>   </div><!--Fim_redes-->   <div class="espaço">   </div><!--Fim_pequisalogotipo-->   <div class="login">    <div id="wrapper">                         <div id="login" >                                                 <?php include('Include/login.php'); ?>                         </div>                                                                                                           </div> </div><!--Fim_login-->   </div><!--Fim_conect_bd-->   </div><!--Fim_cabecalho-->   <div class="sub_cabecalho"> <div class="contactos_pag"> <div class="contacto">   <div class="noticias"> <?php include('Include/caixa_noticias.php'); ?> </div><!--Fim_noticias--> </div><!--Fim_contacto--> </div><!--Fim_contactos_pag--> <div class="menu_slide"> <div class="menu_all">   <div class="menu">   <?php include('Include/menu.php'); ?>           </div><!--Fim_menu_all-->     </div><!--Fim_menu-->         <div class="slide">        <div id="wrapper">               <div class="slider-wrapper theme-default">                         <div id="slider" class="nivoSlider">                        <?php include('Include/slide_fotos.php'); ?>             </div>                   </div>       </div>       </div><!--Fim_slide-->     </div><!--Fim_menu_slide-->      </div><!--Fim_subcabecalho-->      <div class="informacao">         <div class="titulo_informacao">         </div><!--titulo_informacao-->         <div class="contiudo_informacao">   <?php   $sql = "SELECT * FROM texto WHERE id = '1'"; $query_sql= mysql_query($sql); $row_sql=mysql_fetch_array($query_sql);   $texto=$row_sql['home'];   echo $texto; ?>     </div> <!--Fim_contiudo_informacao-->          </div><!--Fim_informacao-->              <div class="publicidade">      <?php include('Include/publicidade.php');?>      </div><!--Fim_publicidade-->     </div><!--Fim_pagina_home-->           </div> <!--Fim_pagina_centro-->   <div class="copyright">     <?php include('Include/copytught.php'); ?>     </div><!--Fim_copyrighte--> </body>     </html>

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado