Чувајте датотеке у БЛОБ пољима помоћу ПХП -а и МиСКЛ -а

Преглед садржаја

Када правимо софтвер или веб локацију која користи датотеке, морамо одлучити како да их складиштимо, једна од могућности је да креирате фасциклу и тамо сачувате датотеке, а друга могућност је да их сачувате у бази података, морамо имати на уму то поље лонгблоб може да складишти до 4 гигабајта.

Мотор базе података миСКЛ вам омогућава да користите блок поља која чувају информације у бинарном формату. Овај формат вам омогућава складиштење различитих врста датотека, као што су Ворд, Екцел, било које врсте слика, пдф датотеке итд. У овом водичу ћемо видети како чувати датотеке у МиСКЛ табели базе података, подаци ће бити послати са хтмл обрасца и обрађени помоћу ПХП -а за чување датотека у бази података.

За извођење примера водича биће нам потребан удаљени сервер или локални који се може инсталирати као што смо видели у водичу:

  • Како инсталирати Ксампп да би ваш рачунар претворио у веб сервер, на овај начин ћемо имати подршку за пхп и мискл и све потребне библиотеке.

Затим ћемо створити базу података која ће складиштити податке о возилу, са техничким листом фотографија и пдф -а, за шта ћемо креирати пхпмиадмин пример да се зове трговац. Затим ћемо креирати табелу аутомобила.

 ЦРЕАТЕ ДАТАБАСЕ деалер; Структура табеле за табелу `аутос` ЦРЕАТЕ ТАБЛЕ` аутос` (`ид` инт (11) НОТ НУЛЛ,` марк` варцхар (150) ДЕФАУЛТ '0', `модел` варцхар (150) ДЕФАУЛТ '0',` пхото` лонгблоб) ЕНГИНЕ = ИнноДБ ДЕФАУЛТ ЦХАРСЕТ = латин1; Индекси табеле `аутос` АЛТЕР ТАБЛЕ` аутос` ДОДАЈ ПРИМАРНИ КЉУЧ (` ид`); АУТО_ИНЦРЕМЕНТ дампираних табела АУТО_ИНЦРЕМЕНТ табеле `аутос` АЛТЕР ТАБЛЕ` аутос` МОДИФИ` ид` инт (11) НИЈЕ НУЛЛ АУТО_ИНЦРЕМЕНТ;
Код за креирање табеле

Израђујемо ПХП странице и образац за регистрацију података
Онда креираћемо датотеку цонфиг.пхп одакле ћемо се повезати са базом података:

 
Цонфиг.пхп

Затим ћемо створити страницу у ПХП -у која ће бити задужена за исписивање свих записа табеле са аутомобилима.

 <? Избацио "
"; Избацио "
"; Избацио ""; Избацио ""; Избацио ""; Избацио ""; Избацио "

"; $ ресулт = мискл_куери (" СЕЛЕЦТ * ФРОМ `аутос`") или триггер_еррор (мискл_еррор ()); вхиле ($ ровс = мискл_фетцх_арраи ($ ресулт)) {фореацх ($ ровс АС $ кеи => $ валуе) {$ редови [$ кеи] = траке ($ валуе);} ецхо "
"; Избацио ""; Избацио ""; Избацио ""; Избацио " "; Избацио "

"; } Избацио "
МаркаМоделПхотоРадње
". $ ровс ['марк']."". $ ровс ['модел']." Поглед на фотоУредити Уклони
"; ецхо" Нови ауто ";?> вар13 ->
Наведите све записе у табели

Образац за регистрацију података који нам омогућава регистрацију фотографије, за то морамо да користимо елементе датотеке који нам омогућавају да изаберемо датотеку из прегледача, а затим је обрадимо помоћу ПХП -а и сачувамо податке у блоб пољима наше табеле за аутомобиле из базу података.

Креирање веба на нашем серверу
Веб стварамо у фасцикли која се зове концесионар на нашем серверу. Веб страница ће садржати ХТМЛ и ПХП код, у облику који морамо користити атрибут енцтипе = "мултипарт / форм-дата" то значи да се датотеке могу слати путем обрасца, ако нема атрибут, датотеке се не могу слати.

Ова страница ће се звати хигх.пхп

Код је следећи:

 $ валуе) {$ _ПОСТ [$ кеи] = мискл_реал_есцапе_стринг ($ валуе); } // читамо податке са фотографије $ пхото = $ _ФИЛЕС ["пхото"] ["тмп_наме"]; $ пхотонаме = $ _ФИЛЕС ["пхото"] ["наме"]; // ово је датотека коју ћемо додати у блоб поље $ фото = $ _ФИЛЕС ['фото'] ['тмп_наме']; // претварамо га у бинарно пре него што га сачувамо $ пхото = мискл_реал_есцапе_стринг (филе_гет_цонтентс ($ _ ФИЛЕС ["пхото"] ["тмп_наме"])); $ скл = "ИНСЕРТ ИНТО` царс` (` маке`, `модел`,` пхото`) ВАЛУЕС ('{$ _ПОСТ [' маке ']}}', '{$ _ПОСТ [' модел ']}}', '$ Фотографија ') "; мискл_куери ($ скл) или умрети (мискл_еррор ()); хеадер ('Локација: Листаутос.пхп'); }?> вар13 ->

Марка:

Модел:

Фото:

Затим ћемо то морати да покажемо, креираћемо страницу која тумачи бинарну датотеку и приказује је, креираћемо страницу верфото.пхп а ми ћемо навести ид фотографије за приказ.
 Неименован документ

Такође можемо издвојити атрибуте датотеке ако нам затребају на следећи начин:

 
Датотека се привремено складишти у меморији током процеса. Ако дође до грешке, подаци се могу изгубити или се не снимају у потпуности, ПХП скрипта уклања привремену датотеку из меморије након завршетка процеса, чак и ако се не заврши исправно.

Затим ћемо креирати страницу за уређивање података о аутомобилу, коју ћемо позвати едит.пхп

 $ валуе) {$ _ПОСТ [$ кеи] = мискл_реал_есцапе_стринг ($ валуе); } // читамо податке са фотографије $ пхото = $ _ФИЛЕС ["пхото"] ["тмп_наме"]; $ пхотонаме = $ _ФИЛЕС ["пхото"] ["наме"]; // ово је привремена датотека $ пхото = $ _ФИЛЕС ['пхото'] ['тмп_наме']; // чита привремену датотеку у бинарном низу $ пхото = мискл_реал_есцапе_стринг (филе_гет_цонтентс ($ _ ФИЛЕС ["пхото"] ["тмп_наме"])); $ скл = "УПДАТЕ` царс` СЕТ` бранд` = '{$ _ПОСТ [' бранд ']}', `модел` = '{$ _ПОСТ [' модел ']}',` пхото` = '$ пхото' ГДЕ `ид` = '$ ид'"; мискл_куери ($ скл) или умрети (мискл_еррор ()); хеадер ('Локација: Листаутос.пхп'); } $ ровс = мискл_фетцх_арраи (мискл_куери ("СЕЛЕЦТ * ФРОМ` аутос` ВХЕРЕ` ид` = '$ ид' ")); ?> вар13 ->

Марка:

Модел:

Модел:

Фото:

>

Морамо имати на уму да ћемо, ако избришемо запис, избрисати датотеке у исто време и оне се неће моћи вратити. Да бисмо избрисали запис, креираћемо страницу делете.пхп а ми ћемо користити следећи код.
 
Направили смо једноставан код без много дизајна који објашњава како складиштити датотеке у блоб пољима, један од недостатака је што величина базе података много расте при складиштењу датотека у бинарном формату.
Једна од предности је то што се датотеке чувају у табели, што је боље из безбедносних разлога, јер се датотекама може приступити само ако имате дозволе за управљање базом података и не постоји једна физичка фасцикла из које можете преузети датотеке или манипулише њима од стране нападача.

Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave