Ci sono due modi per salvare le immagini. Il modo più comune è salvare il nome del file nella tabella MySQL e caricare l’immagine nella cartella.Un altro modo è quello di memorizzare l’immagine direttamente nel database. Poiché, gli sviluppatori di solito non usano il secondo metodo, potrebbero confondersi.

Usare MySQL per informazioni sul database è senza dubbio un’ottima scelta. A volte per salvare l’immagine o il file nel database che in una cartella separata è più conveniente. In questo articolo, imparerai come salvare l’immagine o il file nel database MySQL e come verrà visualizzata l’immagine del database con l’esempio pratico.

Memorizzare un file caricato in un database è una parte più complessa del semplice spostamento di un file con move_uploaded_file. quindi oggi controlleremo la memorizzazione di un file nel database.Il database MySQL fornisce un tipo di dati specializzato per salvare una grande quantità di dati e quel tipo di dati è BLOB.

Che cos’è un BLOB?

Il tipo di dati BLOB è un oggetto binario di grandi dimensioni che può contenere una lunghezza variabile di dati.Un BLOB viene in genere utilizzato per memorizzare dati binari e ha quattro tipi:’

1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB

La differenza principale tra tutti i tipi è la lunghezza dei rispettivi dati possono essere salvati.

Per memorizzare un file nel database o in MySQL, creiamo una tabella con il tipo di dati BLOB in cui il file può essere memorizzato utilizzando la seguente istruzione.Poiché BLOB sta per Binary Large Object ed è una versione binaria del tipo di TESTO che significa che i dati non sono testo leggibile e non verranno interpretati come testo leggibile mentre memorizzano dati strettamente binari.

Qui, sto memorizzando un’immagine nel database invece di spostare il file dalla posizione temporanea a una directory finale solo in modo da leggerne il contenuto e inserirlo nel database.

NOTA: le colonne BLOB sono case-sensitive se si memorizzano dati in esse e quindi si tenta di cercarle con una query MySQL.

Esempio:

Ecco la struttura della tabella con due campi, il primo è l’ID primario autoincremento e il secondo campo è Blob per salvare l’immagine.

1
2
3
4
5
6

CREARE file di TABELLA (
id INT AUTO_INCREMENT PRIMARY KEY,
file_data MEDIUMBLOB NOT NULL
);

a quel punto, Avete bisogno di una interfaccia web per il caricamento di un’immagine. Per questo,andiamo a creare un modulo HTML che consente all’utente di caricare un file che si desidera memorizzare nel database

1
2
3
4
5
6

<form name=”file” action=”filedb.php” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”file” valore=”” />
<input type=”submit” name=”Upload” value=”Upload”>
</modulo>

Dopo modulo, creare filedb.file php che mostra il codice principale per memorizzare il file nel database. Qui la funzione fread legge il contenuto del file o dell’immagine e salva il contenuto nel database MySQL usando MySQL query.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

// Questo è il file che si sta andando ad aggiungere nel database
$MY_FILE = $_FILES;
// Per aprire il file e memorizzare il contenuto in $file_contents
$file = fopen($MY_FILE, ‘r’);
$file_contents = fread($file, filesize($MY_FILE));
fclose($file);
/* Abbiamo bisogno di uscire da alcune stcharacters che potrebbero apparire in file_contents,in modo da farlo ora prima di iniziare la query.* /
fil file_contents = addslashes (fil file_contents);
// Per aggiungere il file nel database
mysql_connect (‘localhost’, ‘root’,”) o die(“Impossibile connettersi al database.”);
mysql_select_db(‘test’) o die(“Impossibile selezionare il DB.”);
mysql_query (“INSERT INTO files SET file_data=’fil file_contents'”) o die (“MySQL Query Error:”. mysql_error (). “<br > < br >”. “L’SQL era: SQL SQL<br > < br>”);
mysql_close ();
echo “File INSERITO nella tabella dei file con successo.”;

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.