Pohranite datoteke u BLOB polja s PHP -om i MySQL -om

Sadržaj

Kada stvaramo softver ili web stranicu koja koristi datoteke, moramo odlučiti kako ih pohraniti, jedna od mogućnosti je stvoriti mapu i tamo pohraniti datoteke, a druga mogućnost je pohraniti ih u bazu podataka, moramo imati na umu to polje longblob može pohraniti do 4 gigabajta.

Motor baze podataka mySQL omogućuje vam korištenje blok polja koja pohranjuju informacije u binarnom formatu. Ovaj format omogućuje vam pohranu različitih vrsta datoteka, kao što su Word, Excel, bilo koje vrste slika, pdf datoteke itd. U ovom vodiču ćemo vidjeti kako pohraniti datoteke u tablicu baze podataka MySQL, podaci će biti poslani s html obrasca i obrađeni s PHP -om za spremanje datoteka u bazu podataka.

Za izvođenje primjera vodiča trebat će nam udaljeni ili lokalni poslužitelj koji se može instalirati kao što smo vidjeli u vodiču:

  • Kako instalirati Xampp da bi vaše računalo postalo web poslužitelj, na ovaj način imat ćemo podršku za php i mysql i sve potrebne knjižnice.

Zatim ćemo stvoriti bazu podataka koja će pohranjivati ​​podatke o vozilu, sa fotografijom i pdf tehničkim listom, za što ćemo stvoriti phpmyadmin primjer da se zove trgovac. Zatim ćemo stvoriti tablicu automobila.

 CREATE DATABASE dealer; Struktura tablice za tablicu `autos 'CREATE TABLE` autos` (` id` int (11) NOT NULL, `mark` varchar (150) DEFAULT' 0 ',` model` varchar (150) DEFAULT' 0 ', `photo` longblob) MOTOR = InnoDB ZADNJA KARTA = latin1; Indeksi tablice `autos` ALTER TABLE` autos` DODAJ PRIMARNI KLJUČ (` id`); AUTO_INCREMENT dampiranih tablica AUTO_INCREMENT tablice `autos 'ALTER TABLE` autos `MODIFY` id` int (11) NOT NULL AUTO_INCREMENT;
Kôd za izradu tablice

Izrađujemo PHP stranice i obrazac za registraciju podataka
Zatim stvorit ćemo datoteku config.php odakle ćemo se povezati s bazom podataka:

 
Config.php

Zatim ćemo stvoriti stranicu u PHP -u ​​koja će biti zadužena za popis svih zapisa tablice autos.

 <? izbaciti "
"; izbaciti "
"; izbaciti ""; izbaciti ""; izbaciti ""; izbaciti ""; izbaciti "

"; $ result = mysql_query (" SELECT * FROM `autos`") ili trigger_error (mysql_error ()); while ($ rows = mysql_fetch_array ($ result)) {foreach ($ rows AS $ key => $ value) {$ retci [$ ključ] = trake ($ vrijednost);} echo "
"; izbaciti ""; izbaciti ""; izbaciti ""; izbaciti " "; izbaciti "

"; } izbaciti "
MarkaModelFotografijaRadnje
". $ rows ['mark']."". $ rows ['model']." Pogledajte fotografijuUredi Ukloniti
"; echo" Novi automobil ";?> var13 ->
Navedite sve zapise u tablici

Obrazac za registraciju podataka koji nam omogućuje registraciju fotografije, za to moramo koristiti elemente datoteke koji nam omogućuju odabir datoteke iz preglednika, a zatim je obraditi s PHP -om i spremiti podatke u mrljasta polja naše tablice automobila s bazu podataka.

Izrada weba na našem poslužitelju
Web stvaramo unutar mape zvane koncesionar na našem poslužitelju. Web stranica će sadržavati HTML i PHP kôd, u obliku koji moramo koristiti atribut enctype = "multipart / form-data" to znači da se datoteke mogu slati putem obrasca, ako nema atribut, datoteke se ne mogu slati.

Ova stranica će se zvati visoka.php

Kôd je sljedeći:

 $ value) {$ _POST [$ key] = mysql_real_escape_string ($ value); } // čitamo podatke s fotografije $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["fotografija"] ["ime"]; // ovo je datoteka koju ćemo dodati u blob polje $ foto = $ _FILES ['foto'] ['tmp_name']; // pretvaramo ga u binarni format prije spremanja $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "INSERT INTO` automobili` (` marka`, `model`,` fotografija`) VRIJEDNOSTI ('{$ _POST [' make ']}}', '{$ _POST [' model ']}}', '$ Fotografija ') "; mysql_query ($ sql) ili umrijeti (mysql_error ()); header ('Lokacija: Listautos.php'); }?> var13 ->

Marka:

Model:

Fotografija:

Zatim ćemo to morati pokazati jer ćemo stvoriti stranicu koja tumači binarnu datoteku i prikazuje je, stvorit ćemo stranicu verfoto.php i navest ćemo id fotografije za prikaz.
 Neimenovani dokument

Također možemo izdvojiti atribute datoteke ako nam trebaju na sljedeći način:

 
Datoteka se privremeno pohranjuje u memoriju tijekom procesa. Ako dođe do pogreške, podaci se mogu izgubiti ili se ne snimaju u potpunosti, PHP skripta uklanja privremenu datoteku iz memorije nakon što je proces dovršen, čak i ako ne završi ispravno.

Zatim ćemo stvoriti stranicu za uređivanje podataka o automobilu, koju ćemo nazvati uredi.php

 $ value) {$ _POST [$ key] = mysql_real_escape_string ($ value); } // čitamo podatke s fotografije $ photo = $ _FILES ["photo"] ["tmp_name"]; $ photoname = $ _FILES ["fotografija"] ["ime"]; // ovo je privremena datoteka $ photo = $ _FILES ['photo'] ['tmp_name']; // čita privremenu datoteku u binarnom nizu $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "UPDATE` cars` SET` brand` = '{$ _POST [' brand ']}', `model` = '{$ _POST [' model ']}',` photo` = '$ photo' GDJE `id` = '$ id'"; mysql_query ($ sql) ili umrijeti (mysql_error ()); header ('Lokacija: Listautos.php'); } $ rows = mysql_fetch_array (mysql_query ("SELECT * FROM` autos` WHERE` id` = '$ id' ")); ?> var13 ->

Marka:

Model:

Model:

Fotografija:

>

Moramo imati na umu da ćemo, ako izbrišemo zapis, izbrisati datoteke u isto vrijeme i one se neće moći vratiti. Za brisanje zapisa stvorit ćemo stranicu delete.php a mi ćemo koristiti sljedeći kod.
 
Napravili smo jednostavan kod bez mnogo dizajna koji objašnjava kako pohraniti datoteke u blob polja, jedan od nedostataka je to što veličina baze podataka jako raste pri pohranjivanju datoteka u binarnom formatu.
Jedna od prednosti je ta što se datoteke spremaju unutar tablice, što je bolje iz sigurnosnih razloga, budući da se datotekama može pristupiti samo ako imate dopuštenja za upravljanje bazom podataka i ne postoji jedna fizička mapa iz koje možete preuzeti datoteke ili manipulirati njima od strane napadača.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave