Exibindo uma imagem armazenada em um BLOB MySQL
Ao tentar exibir uma imagem armazenada como um BLOB em um banco de dados MySQL usando o PHP fornecido código, os usuários encontraram um problema em que a saída de qualquer texto ou conteúdo antes ou depois da imagem resulta em erros de exibição. Este artigo aborda esse problema e apresenta uma solução para exibir elementos adicionais ao lado da imagem.
O código original:
include("inc/library.php");
connectToDatabase();
$sql = "SELECT * FROM theBlogs WHERE ID = 1;";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
header("Content-type: image/jpeg");
echo $row['imageContent'];
$db->close();
Tenta fazer eco do conteúdo da imagem diretamente na página, mas encontra problemas se qualquer outro conteúdo for gerado antes ou depois dele.
Solução
O problema surge porque os navegadores consideram qualquer texto ou conteúdo fora dos dados da imagem como parte da imagem. Para resolver isso, os dados da imagem podem ser convertidos para Base64 e incorporados em uma tag .
echo '
';
echo 'Hello world.';
Esta solução converte os dados da imagem para Base64 e os coloca em uma tag , permitindo que a imagem seja exibida corretamente e também permitindo a saída de conteúdo adicional na página.
Observação: Embora essa abordagem funcione, ela não é ideal para desempenho e armazenamento em cache. Recomenda-se explorar soluções alternativas para exibição de imagens armazenadas como BLOBs em bancos de dados MySQL, como o uso de mecanismos de cache ou servidores de imagens externos.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3