Když vytváříme software nebo web, který používá soubory, musíme se rozhodnout, jak je uložit, jednou z možností je vytvořit složku a uložit tam soubory a další možností je uložit je do databáze, musíme mít na paměti že pole longblob může uložit až 4 gigabajty.
Databázový stroj mySQL vám umožňuje používat bloková pole, která ukládají informace v binárním formátu. Tento formát vám umožňuje ukládat různé typy souborů, například Word, Excel, jakýkoli typ obrázků, soubory PDF atd. V tomto tutoriálu uvidíme jak ukládat soubory do databázové tabulky MySQL, data budou odeslána z html formuláře a zpracována pomocí PHP pro uložení souborů do databáze.
K provedení příkladů tutoriálu budeme potřebovat vzdálený server nebo místní server, který lze nainstalovat, jak jsme viděli v tutoriálu:
- Jak nainstalovat Xampp, aby se váš počítač stal webovým serverem, tímto způsobem budeme mít podporu pro php a mysql a všechny potřebné knihovny.
Dále vytvoříme databázi, která bude ukládat data o vozidle, s technickým listem s fotografiemi a pdf, z čehož vytvoříme phpmyadmin příklad, který se nazývá prodejce. Dále vytvoříme tabulku automobilů.
VYTVOŘIT dealera DATABÁZE; Struktura tabulky pro tabulku `autos` CREATE TABLE` autos` (` id` int (11) NOT NULL, `mark` varchar (150) DEFAULT '0',` model` varchar (150) DEFAULT '0', `photo` longblob) ENGINE = VÝCHOZÍ CHARSET InnoDB = latin1; Indexy tabulky `autos` ALTER TABLE` auta` ADD PRIMARY KEY (` id`); AUTO_INCREMENT uložených tabulek AUTO_INCREMENT tabulky `autos` ALTER TABLE` autos` MODIFY` id` int (11) NOT NULL AUTO_INCREMENT;Kód pro vytvoření tabulky
Vytváříme stránky PHP a formulář pro registraci dat
Pak vytvoříme soubor config.php odkud se připojíme k databázi:
Config.php
Dále vytvoříme stránku v PHP, která bude mít na starosti výpis všech záznamů tabulky autos.
<? vyhodil "
Značka | "; vyhodil "Modelka | "; vyhodil "Fotografie | "; vyhodil "Akce | "; vyhodil "|
". $ řádky ['značka'].“ | "; vyhodil "". $ rows ['model']." | "; vyhodil "Zobrazit fotografii | "; vyhodil "Upravit | Odstranit | "; vyhodil "
Formulář pro registraci dat, který nám umožňuje zaregistrovat fotografii, k tomu musíme použít prvky souboru, které nám umožňují vybrat soubor z prohlížeče a poté jej zpracovat pomocí PHP a uložit data do polí blob naší tabulky Autom od databáze.
Vytvoření webu na našem serveru
Web na našem serveru vytváříme ve složce s názvem concessionaire. Webová stránka bude obsahovat HTML a PHP kód, ve formě musíme použít atribut enctype = "vícedílné / formulářové údaje" to znamená, že soubory lze odesílat prostřednictvím formuláře, pokud nemá atribut, nelze odesílat soubory.
Tato stránka se bude jmenovat vysoký.php
Kód je následující:
hodnota $) {$ _POST [$ key] = mysql_real_escape_string ($ hodnota); } // čteme data z fotografie $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["foto"] ["jméno"]; // toto je soubor, který přidáme do pole blob $ foto = $ _FILES ['foto'] ['tmp_name']; // před uložením jej převedeme na binární $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "VLOŽIT DO AUT" (`make`,` model`, `photo`) HODNOTY ('{$ _POST [' make ']}', '{$ _POST [' model ']}', '$ Fotografie ') "; mysql_query ($ sql) nebo die (mysql_error ()); header ('Umístění: Listautos.php'); }?> var13 ->Dále to budeme muset ukázat, vytvoříme stránku, která interpretuje binární soubor a zobrazí ji, vytvoříme stránku verfoto.php a uvedeme ID fotografie, která se má zobrazit.Značka:
Modelka:
Fotografie:
Dokument bez názvuMůžeme také extrahovat atributy souboru, pokud jej potřebujeme, následujícím způsobem:
Soubor je během procesu dočasně uložen v paměti, pokud dojde k chybě, data mohou být ztracena nebo nejsou zcela zaznamenána, skript PHP po dokončení procesu dočasný soubor z paměti odebere, i když se nedokončí správně.Dále vytvoříme stránku pro úpravu dat auta, které zavoláme edit.php
hodnota $) {$ _POST [$ key] = mysql_real_escape_string ($ hodnota); } // čteme data z fotografie $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["foto"] ["jméno"]; // toto je dočasný soubor $ photo = $ _FILES ['photo'] ['tmp_name']; // přečtěte si dočasný soubor v binárním $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "UPDATE` cars` SET` brand` = '{$ _POST [' brand ']}', `model` = '{$ _POST [' model ']}',` photo` = '$ photo' WHERE `id` = '$ id'"; mysql_query ($ sql) nebo die (mysql_error ()); header ('Umístění: Listautos.php'); } $ lines = mysql_fetch_array (mysql_query ("SELECT * FROM` auta` WHERE` id` = '$ id' ")); ?> var13 ->Musíme mít na paměti, že pokud odstraníme záznam, smažeme soubory současně a nelze je obnovit. K odstranění záznamu vytvoříme stránku delete.php a použijeme následující kód.Značka:
Modelka:
Modelka:
Fotografie:
>
Vytvořili jsme jednoduchý kód bez velkého designu, abychom vysvětlili, jak ukládat soubory do polí blob. Jednou z nevýhod je, že při ukládání souborů v binárním formátu velikost databáze hodně roste.
Jednou z výhod je, že soubory jsou uloženy v tabulce, což je lepší z bezpečnostních důvodů, protože k souborům lze přistupovat pouze tehdy, pokud máte oprávnění ke správě databáze a neexistuje žádná fyzická složka, ze které by bylo možné soubory stahovat nebo s nimi manipulovat útočníkem. Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod