Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Carregar imagem no banco de dados MYSQL e exibi-la usando PHP com Swift


Obtendo a imagem do usuário

Consulte http://php.net/manual/en/reserved.variables. arquivos.php e http://php.net/manual/en/features.file- upload.php e amigos pelos dados de como usar $_FILES para receber o upload.

Depois de ter a imagem em uma variável, diga $jpg , não use nenhuma função de codificação/decodificação de texto; ele só vai destroçar as coisas. As diferentes abordagens abaixo dirão o que fazer para evitar tropeçar em códigos de 8 bits.

Existem três maneiras de apresentar a imagem, cada uma um pouco complexa

Armazenando a imagem no banco de dados; mostrando imagem em linha

Eu usei essa abordagem para miniaturas, mas não recomendo para imagens grandes.

Armazene-o em um MEDIUMBLOB em uma tabela, use bin2hex() em PHP para transformar a imagem em uma string. Em seguida, use INSERT ... VALUES (UNHEX('...')) para voltar para binário no lado do servidor MySQL.

Após recarregar, faça com que o PHP de referência diga algo como
$b64 = base64_encode($blob);
echo "<img src='data:image/jpeg;base64,$b64'/>";

Armazenando a imagem no banco de dados; Script PHP para gerar imagem

Eu uso isso quando quero usar as funções "image*" do PHP para modificar a imagem antes de exibi-la. Uma vez que isso é mais complicado do que você provavelmente precisa, vou apenas dar uma olhada no que precisa ser feito.

O html da página invocaria outro script, com os argumentos que você precisa:
<img src=modify.php?this=stuff&that=stuff>

Então em modify.php , começar com
header('Content-type: image/jpeg');

E termine com isso (supondo que você esteja construindo um JPEG):
imagejpeg($im);

Armazenando a imagem em um arquivo

Esta é a maneira preferida que a maioria dos grandes sites fazem isso na maioria das vezes.

Se o seu arquivo vier de um upload, algo assim o moverá para um caminho melhor sem precisar tocar no jpg.
$tmpfile = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmpfile, $uploadfile);

Mais informações e exemplos:http://php.net/manual/ pt/function.move-uploaded-file.php

No HTML, basta gerar algo assim:
<img src=path/to/file>

Faça uma pesquisa sobre onde no caminho do seu servidor você pode colocar imagens e verifique se as permissões são adequadas.

Nota:O banco de dados não está envolvido em manter a imagem, em vez disso, possui uma coluna para armazenar a url "path/to/file" :
image VARCHAR(255) NOT NULL

Para mais discussões
  • Em qual das três técnicas você gostaria de se aprofundar?
  • Vamos ver o HTML que você está gerando.
  • Vamos ver SHOW CREATE TABLE .