existem duas maneiras de salvar imagens. A maneira mais comum é salvar o nome do arquivo na tabela MySQL e fazer upload de imagem na pasta.Outra maneira é armazenar a imagem diretamente no banco de dados. Como os desenvolvedores geralmente não usam o segundo método, eles podem ficar confusos.
usar o MySQL para informações de banco de dados é, sem dúvida, uma escolha muito boa. Às vezes, salvar a imagem ou arquivo no banco de dados do que em uma pasta separada é mais conveniente. Neste artigo, você aprenderá como salvar a imagem ou arquivo no banco de dados MySQL e como a imagem do banco de dados será exibida com o exemplo prático.
armazenar um arquivo carregado em um banco de dados é uma parte mais complexa do que simplesmente mover um arquivo com move_uploaded_file. então, hoje vamos verificar se há armazenamento de um arquivo no banco de dados.O banco de dados MySQL fornece datatype especializado para salvar uma grande quantidade de dados e esse tipo de dados é BLOB.
o que é um BLOB?
o tipo de dados BLOB é um objeto binário grande que pode conter um comprimento variável de dados.Um BLOB é normalmente usado para armazenar dados binários e tem quatro tipos:’
1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB
a principal diferença entre todos os tipos é o comprimento dos respectivos dados podem ser salvos.
Para armazenar um arquivo no banco de dados ou no MySQL Vamos criar uma tabela com o tipo de dados BLOB onde o arquivo pode ser armazenado usando a instrução a seguir.Como BLOB significa Binary large Object e é uma versão binária segura do tipo de texto que significa que os dados não são texto legível e não serão interpretados como texto legível, enquanto armazenam dados estritamente binários.
aqui, estou armazenando uma imagem no banco de dados em vez de mover o arquivo do local temporário para um diretório final apenas para que você leia seu conteúdo e insira-o no banco de dados.
Nota: As colunas BLOB são sensíveis a maiúsculas e minúsculas se você armazenar dados nelas e tentar pesquisá-las com uma consulta MySQL.
exemplo:
aqui está a estrutura da tabela tem dois campos, primeiro é o ID primário autoincrement e o segundo campo é Blob para salvar a imagem.
1
2
3
4
5
6
|
CRIAR arquivos de TABELA (
id INT AUTO_INCREMENT PRIMARY KEY,
file_data MEDIUMBLOB NÃO NULO
);
|
em seguida, Você precisa de uma interface web para fazer upload de uma imagem. Para isso,Vamos criar o formulário HTML que permite ao usuário enviar um arquivo que você deseja armazenar no banco de dados
1
2
3
4
5
6
|
<form name=”arquivo” action=”filedb.php” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”arquivo” valor=”” />
<input type=”submit” name=”Enviar” value=”Upload”>
</formulário>
|
Depois de formulário, criar filedb.arquivo php que mostra o código principal para armazenar o arquivo no banco de dados. Aqui função fread leia o conteúdo do arquivo ou imagem e salve o conteúdo no banco de dados MySQL usando MySQL query.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// Este é o arquivo que iremos adicioná-lo na base de dados
$MY_FILE = $_FILES;
// Para abrir o arquivo e armazenar seu conteúdo em $file_contents
$arquivo = fopen($MY_FILE, ‘r’);
$file_contents = fread($arquivo, filesize($MY_FILE));
fclose($arquivo);
/* precisamos escapar de algumas stcharacters que podem aparecer em file_contents,de modo que fazer agora, antes de começar a consulta.*/
$file_contents = addslashes($file_contents);
// Para adicionar o arquivo no banco de dados
mysql_connect(‘localhost’, ‘root’, “) or die(“não foi Possível conectar ao banco de dados.”);
mysql_select_db (‘test’) ou die (“incapaz de selecionar o banco de dados.”);
mysql_query (“inserir em arquivos definir file_data=’$file_contents'”) ou morrer (“erro de consulta MySQL:”. mysql_error (). “< br > < br >”. “O SQL foi: $ SQL<br > < br>”);
mysql_close ();
echo “arquivo inserido na tabela arquivos com sucesso.”;
|