er zijn twee manieren om afbeeldingen op te slaan. Meest voorkomende manier is om de bestandsnaam op te slaan in MySQL tabel en afbeelding uploaden in de map.Een andere manier is om de afbeelding direct op te slaan in de Database. Zoals, ontwikkelaars meestal niet gebruik maken van de tweede methode, ze kunnen in de war raken.
het gebruik van MySQL voor database-informatie is ongetwijfeld een zeer goede keuze. Soms is het handiger om de afbeelding of het bestand in de database op te slaan dan in een aparte map. In dit artikel leert u hoe u de afbeelding of het bestand opslaat in de MySQL database en hoe de database afbeelding wordt weergegeven met het praktische voorbeeld.
het opslaan van een geüpload bestand in een database is complexer dan het verplaatsen van een bestand met move_uploaded_file. dus vandaag zullen we controleren of er een bestand in de database is opgeslagen.MySQL database biedt gespecialiseerde datatype om een grote hoeveelheid gegevens op te slaan en dat gegevenstype is BLOB.
Wat is een BLOB?
BLOB data type is een binair groot object dat een variabele lengte van gegevens kan bevatten.Een BLOB wordt meestal gebruikt om binaire gegevens op te slaan en heeft vier types:’
1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB
het belangrijkste verschil tussen alle typen is de lengte van de respectievelijke gegevens kunnen worden opgeslagen.
om een bestand in de database of in MySQL op te slaan, maken we een tabel met het gegevenstype BLOB waar het bestand kan worden opgeslagen met behulp van het volgende statement.Zoals BLOB staat voor Binary Large Object en zijn een binaire-veilige versie van het teksttype dat betekent dat gegevens niet leesbare tekst en zal niet worden geïnterpreteerd als leesbare tekst, terwijl het strikt binaire gegevens opgeslagen.
hier sla ik een afbeelding op in de database in plaats van het bestand van de tijdelijke locatie naar een definitieve map te verplaatsen, zodat u de inhoud ervan leest en in de database invoegt.
opmerking: BLOB-kolommen zijn hoofdlettergevoelig als u er gegevens in opslaat en vervolgens probeert te zoeken met een MySQL-query.
voorbeeld:
hier is de tabelstructuur heeft twee velden, ten eerste is de autoincrement primaire id en het tweede veld is Blob voor het opslaan van de afbeelding.
1
2
3
4
5
6
|
MAAK de TABEL bestanden (
id INT AUTO_INCREMENT PRIMARY KEY,
file_data MEDIUMBLOB NIET NULL
);
|
Vervolgens moet Je een web-interface voor het uploaden van een afbeelding. Voor die,Laten we het maken van HTML-formulier, waarmee de gebruiker voor het uploaden van een bestand dat u wilt opslaan in database
1
2
3
4
5
6
|
<form name=”bestand” action=”filedb.php” method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”bestand” – waarde=”” />
<input type=”submit” name=”Verzenden” value=”Verzenden”>
</formulier>
|
Na het formulier in, maak filedb.php-bestand dat toont u de belangrijkste code om het bestand op te slaan in de database. Hier fread functie lees het bestand of beeld inhoud en inhoud op te slaan in de MySQL database met behulp van MySQL query.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// Dit is het bestand dat we gaan toevoegen in de database
$MY_FILE = $_FILES;
// om het bestand Te openen en het opslaan van de inhoud in $file_contents
$file = fopen($MY_FILE, ‘r’);
$file_contents = fread($bestand, filesize($MY_FILE));
fclose($file);
/* We moeten om te ontsnappen aan sommige stcharacters die kunnen worden weergegeven in file_contents,dus doe dat nu, voordat we beginnen met de query.* /
$file_contents = addslashes ($file_contents);
// om het bestand toe te voegen aan de database
mysql_connect(‘localhost’, ‘root’, “) or die(“Unable to connect to database.”);
mysql_select_db (’test’) or die (“Unable to select the DB.”);
mysql_query (“INSERT INTO files SET file_data=’$file_contents'”) or die (“MySQL Query Error:”. mysql_error() . “<br><br>”. “De SQL was: $SQL<br><br>”);
mysql_close ();
echo “bestand ingevoegd in Bestandstabel succesvol.”;
|