我无法显示保存到数据库中的图像,它的类型是Long-Blob。 我不知道我的错误在哪里,是在接受,还是从bd取回。
Inserction:
<body>
<form action="#" method="post" enctype="multipart/form-data">
<p>Nome do Produto:</p>
<input type="text" name="nomeProduto" placeholder="Digite o nome do produto" autofocus>
<p>Preco do Produto:</p>
<input type="number" name="precoProduto" placeholder="Digite o preco do produto" >
<p>Imagem do Produto:</p>
<input type="file" name="imagemProduto">
<p>Descricao do Produto:</p>
<input type="text" name="descricaoProduto" placeholder="Digite a descricao do produto">
<p></p>
<input type="submit" name="submit" placeholder="Enviar">
</form>
</body>
<?php
require 'conexao.php';
if(isset($_POST['submit'])) {
$foto = $_FILES['imagemProduto'];
$nomeFinal = time().'.jpg';
if (move_uploaded_file($foto['tmp_name'], $nomeFinal)) {
$tamanhoImg = filesize($nomeFinal);
$mysqlImg = addslashes(fread(fopen($nomeFinal, "r"), $tamanhoImg));
dbInsertProduto ($_POST['nomeProduto'], $_POST['precoProduto'], $mysqlImg, $_POST['descricaoProduto']);
}
}
?>
获得:
<?php
$conn = dbConectar();
$catalogo = mysqli_query($conn, "SELECT * from produtos");
while ($linha = mysqli_fetch_object($catalogo)) {
header('Content-Type: jpg');
//echo "<img src='getImagem.php?PicNum=$linha->imagem' \">";
//$image = base64_decode($linha->imagem);
echo $linha->imagem;
}
?>
dbInsertProduto代码:
function dbInsertProduto ($nome, $preco, $imagem, $descricao) {
$sql = "INSERT into produtos (nome, preco, imagem, descricao) VALUES ('$nome', '$preco',' $imagem', '$descricao')";
$resultado = dbExecutar($sql);
return $resultado;
}
要插入的db :( tabela produtos)https://i.stack.imgur.com/l2D6U.png
答案 0 :(得分:-1)
您需要使用HTML的IMG
标记来显示此内容。
例如:
echo '<img src="data:image/jpeg;base64,'.base64_encode($linha->imagem).'">';
要使其在您的代码中运行,您需要替换以下代码
while ($linha = mysqli_fetch_object($catalogo)) {
header('Content-Type: jpg');
//echo "<img src='getImagem.php?PicNum=$linha->imagem' \">"; Não funciona
//$image = base64_decode($linha->imagem); echo $image tbm não
echo $linha->imagem;
}
向
while ($linha = mysqli_fetch_object($catalogo)) {
echo '<img src="data:image/jpeg;base64,'.base64_encode($linha->imagem).'">';
}
注意强>:
确保将image/jpeg;
附近的mime类型更改为相应的mime类型。
例如,如果png文件然后更改为image/png;
等
提示强>
将图像作为blob保存到数据库中时,您可能还需要存储mime类型。