Ukládejte soubory do polí BLOB s PHP a MySQL

Obsah

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 "
"; vyhodil "
"; vyhodil ""; vyhodil ""; vyhodil ""; vyhodil ""; vyhodil "

"; $ result = mysql_query (" SELECT * FROM `autos`") nebo trigger_error (mysql_error ()); while ($ rows = mysql_fetch_array ($ result)) {foreach ($ rows AS $ key => $ value) {$ řádky [$ key] = stripsy ($ hodnota);} echo "
"; vyhodil ""; vyhodil ""; vyhodil ""; vyhodil " "; vyhodil "

"; } vyhodil "
ZnačkaModelkaFotografieAkce
". $ řádky ['značka'].“". $ rows ['model']." Zobrazit fotografiiUpravit Odstranit
"; echo" Nové auto ";?> var13 ->
Seznam všech záznamů v tabulce

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 ->

Značka:

Modelka:

Fotografie:

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.
 Dokument bez názvu

Můž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 ->

Značka:

Modelka:

Modelka:

Fotografie:

>

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.
 
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

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave