[Resolvido] Exibir imagem do banco de dados MySQL no HTML com PHP
Olá amigos boa tarde, novamente me apareceu um erro que não consigo resolver. Tenho um código para incluir e mostrar as imagens do banco mysql com php no html, mas as imagens não aparecem, uso o mesmo código em outra página com a mesma estrutura e aparece, se alguém enxergar uma luz e me ajudar agradeço, eis os códigos:
código para salvar imagem no banco:
<?php
// Incluindo arquivo de conexão
require_once('../config/conn.php');
// Funções de utilidade
require_once('../funcs/util.php');
// Constantes
define('TAMANHO_MAXIMO', (2 1024 1024));
// Verificando se selecionou alguma imagem
if (!isset($_FILES['foto']))
{
echo retorno('Selecione uma imagem');
exit;
}
if (!isset($_POST['descricao'])){
echo retorno('Preencha o campo descrição!');
exit;
}
if (!isset($_POST['link'])){
echo retorno('Escreva o link da página!');
exit;
}// Recupera os dados dos campos
$foto = $_FILES['foto'];
$descricao = $_POST['descricao'];
$nome = $foto['name'];
$tipo = $foto['type'];
$tamanho = $foto['size'];
$link = $_POST['link'];// Validações básicas
// Formato
if(!preg_match('/^image\/(pjpeg|jpeg|png|gif|bmp)$/', $tipo))
{
echo retorno('Isso não é uma imagem válida');
exit;
}// Tamanho
if ($tamanho > TAMANHO_MAXIMO)
{
echo retorno('A imagem deve possuir no máximo 2 MB');
exit;
}// Transformando foto em dados (binário)
$conteudo = file_get_contents($foto['tmp_name']);
// Preparando comando
$stmt = $pdo->prepare('INSERT INTO picolesnaturais (nome, conteudo, descricao, tipo, tamanho, link) VALUES (:nome, :conteudo, :descricao, :tipo, :tamanho, :link)');
// Definindo parâmetros
$stmt->bindParam(':nome', $nome, PDO::PARAM_STR);
$stmt->bindParam(':conteudo', $conteudo, PDO::PARAM_LOB);
$stmt->bindParam(':descricao', $descricao, PDO::PARAM_STR);
$stmt->bindParam(':tipo', $tipo, PDO::PARAM_STR);
$stmt->bindParam(':tamanho', $tamanho, PDO::PARAM_INT);
$stmt->bindParam(':link', $link, PDO::PARAM_STR);// Executando e exibindo resultado
echo ($stmt->execute()) ? retorno('Produto cadastrado com sucesso', true) : retorno($stmt->errorInfo());
Código do formulário para salvar foto:
<form id="formulario" action="ajax/salvarpicolesnatural.php" method="post">
<div id="mensagem"></div>
<div class="form-group">
<label>Carregar foto</label><br />
<span class="btn btn-default btn-file">
<input type="file" name="foto" value="Escolher foto"/>
</span>
<br />
<label>Descrição do produto</label><br />
<span class="btn ">
<input type="text" name="descricao" placeholder="Descrição do Produto" style="width:350px;" required />
</span>
<br />
<label>Link da página do produto</label><br />
<span class="btn ">
<input type="text" name="link" placeholder="link da página" style="width:350px;" required />
</span>
</div>
<input id="salvar" class="btn btn-primary" type="submit" value="Salvar" data-loading-text="Salvando..."/>
</form>
Códigos para exibir as imagens:
<?php// Incluindo arquivo de conexão
require_once('config/conn.php');
// Selecionando fotos
$stmt = $pdo->query('SELECT id, nome, tipo, descricao, tamanho, link FROM picolesnaturais');
?>
<?php while ($foto = $stmt->fetchObject()): ?>
<form action="php/excluirpicolesnaturais.php" method="POST" name="excluir" class="alert-success" id="excluir">
<input type="hidden" name="delete_img_produto" value="<?php echo $foto->id ?>">
<div class="col-sm-6 col-md-4">
<div class="thumbnail" style="float:left">
<a href="<?php echo $foto->link ?>"><img src="imagem.php?id=<?php echo $foto->id ?>" style="max-width:260px" /></a>
<div class="caption">
<strong>Descrição:</strong> <?php echo $foto->descricao ?> <br/>
<strong>Link da página:</strong> <?php echo $foto->link ?> <br/>
<input type="submit" class="btn btn-primary" id="excluirFoto" value="Excluir" data-loading-text="Salvando..." style="color:#FFF; background-color:#F00;" />
</div>
</div>
</div>
</form>
<?php endwhile ?>
e esse é o resultado que aparece...Discussão (3)
Carregando comentários...