det finns två sätt att spara bilder. Det vanligaste sättet är att spara filnamnet i MySQL-tabellen och ladda upp bilden i mappen.Ett annat sätt är att lagra bilden direkt i databasen. Eftersom utvecklare vanligtvis inte använder den andra metoden kan de bli förvirrade.
att använda MySQL för databasinformation är utan tvekan ett mycket bra val. Ibland är det bekvämare att spara bilden eller filen i databasen än i en separat mapp. I den här artikeln lär du dig hur du sparar bilden eller filen i MySQL-databasen och hur databasbilden kommer att visas med det praktiska exemplet.
att lagra en uppladdad fil i en databas är mer komplex än att bara flytta en fil med move_uploaded_file. så idag kommer vi att kontrollera för att lagra en fil i databasen.MySQL-databasen tillhandahåller specialiserad datatyp för att spara en stor mängd data och den datatypen är BLOB.
Vad är en BLOB?
BLOB datatyp är ett binärt stort objekt som kan hålla en variabel längd av data.En BLOB används vanligtvis för att lagra binära data och har fyra typer:’
1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB
huvudskillnaden mellan alla typer är längden på respektive data kan sparas.
för att lagra en fil i databasen eller i MySQL, låt oss skapa en tabell med datatypen BLOB där filen kan lagras med följande uttalande.Som BLOB står för binärt stort objekt och det är en binärsäker version av texttypen som betyder att data inte är läsbar text och inte kommer att tolkas som läsbar text medan den lagrade strikt binära data.
här lagrar jag en bild i databasen istället för att flytta filen från den tillfälliga platsen till en slutlig katalog Bara så att du ska läsa innehållet och infoga det i databasen.
OBS: BLOB-kolumner är skiftlägeskänsliga om du lagrar data i dem och sedan försöker söka efter dem med en MySQL-fråga.
exempel:
här är tabellstrukturen har två fält, först är autoincrement primära id och det andra fältet är Blob för att spara bilden.
1
2
3
4
5
6
|
skapa tabellfiler (
id int AUTO_INCREMENT primärnyckel,
file_data MEDIUMBLOB inte NULL
);
|
därefter behöver du ett webbgränssnitt för att ladda upp en bild. För det,låt oss skapa HTML-formulär som tillåter användaren att ladda upp en fil som du vill lagra i databasen
1
2
3
4
5
6
|
<form name=” file ”action=” filedb.php ”method=” post ”enctype=” multipart / form-data”>
<input type= ”file” name=” file ” värde=”” />
<input type=” submit ”name=” Upload ”value= ”Upload”>
</form>
|
efter form, skapa filedb.php-fil som visar huvudkoden för att lagra filen i databasen. Här fread funktion läsa filen eller bildinnehåll och spara innehåll i MySQL-databasen med hjälp av MySQL-fråga.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// det här är filen vi ska lägga till den i databasen
$ MY_FILE = $_FILES;
/ / för att öppna filen och lagra dess innehåll i $file_contents
$file = fopen ($MY_FILE, ’r’);
$file_contents = fread ($fil, filstorlek ($MY_FILE));
fclose($fil);
/* vi måste undvika några stcharacters som kan visas i file_contents,så gör det nu innan vi börjar frågan.* /
$file_contents = addslashes ($file_contents);
// för att lägga till filen i databasen
mysql_connect(’localhost’, ’root’, ”) eller die(”Det går inte att ansluta till databasen.”);
mysql_select_db (’test’) eller dö (”Det går inte att välja DB.”);
mysql_query (”infoga i filer som file_data=’$file_contents'”) eller dö (”MySQL Query Error:”. mysql_error (). ”< br>< br>”. ”SQL var: $ SQL< br>< br>”);
mysql_close ();
echo ”fil infogas i filer tabellen framgångsrikt.”;
|