Sa soovid teada, kuidas PHP abil objektorienteeritud veebirakenduses pilt üles laadida ja andmebaasi salvestada? Selles samm-sammult juhendis viin sind läbi pildi edastamise protsessi frontendist andmebaasi. Lõpus on sul funktsionaalne üleslaadimise süsteem, mis võimaldab sul pilte turvaliselt salvestada.

Oluline teave

Piltide üleslaadimine ja salvestamine andmebaasis nõuab mitmeid samme, sealhulgas üleslaadimise valideerimist, pildi teabe töötlemist ja õigete teede salvestamist andmebaasi.

Samm-sammult juhend

Esimese asjana vaatame kontrollerit, mis vastutab pildi üleslaadimise eest. Siin kontrollime, kas üleslaadimine on toimunud ja suuname pildi seejärel töötlemiseks edasi.

Pildi üleslaadimine PHP abil – Piltide salvestamine andmebaasi

Esiteks tuleb veenduda, et pilt on õiges formaadis. Sel eesmärgil kasutame oma ImageUtility klassi processUpload meetodit. Sa edastad faili, mille leidsid massiivist $_FILES. Siin on oluline kasutada üleslaadimisvälja õiget võtit, nagu on määratletud failis upload.phtml.

Pildi üleslaadimine PHP abil – piltide salvestamine andmebaasi

Järgmises etapis kontrollime, kas üleslaadimine õnnestus. See toimub processUpload meetodi tagastatud väärtuse kontrollimise kaudu. Kui midagi läheb valesti, on oluline salvestada seansi olulised veateated, mida saad hiljem frontendis kuvada.

Pildi üleslaadimine PHP abil – Piltide salvestamine andmebaasi

Kui üleslaadimine õnnestus, saame kontrollida kasutaja seanssi, et veenduda, et praegune kasutaja on sisse logitud. Kui seanssi ei ole, alustad seda siin.

Pildi üleslaadimine PHP abil – Piltide salvestamine andmebaasi

Siin on oluline, et rakendad suunamisloogikat. Eduka üleslaadimise korral peaksid suuname kasutaja lehele, mis näitab uusi teateid üleslaaditud pildi kohta. Seda saad teostada URL-abimehega, mis lisab uue pildi ID aadressile.

Nüüd rakendad sisselogimise kontrolli. Kui kasutaja ei ole sisse logitud, suuna ta sisselogimise lehele enne pildi üleslaadimise katsetamist.

Sa saad seejärel oma malli kohandada. Veendu, et HTML-vormil on enctype seadistatud väärtusele multipart/form-data, et brauser teaks, et saadetakse binaarfailid.

Pildi üleslaadimine PHP-ga – Piltide salvestamine andmebaasi

Nüüd saad proovida faili üleslaadimist. Vali testfail ja läbi üleslaadimine. Kui üleslaadimine õnnestus, näed kinnitust. Veendu, et pärast üleslaadimist näed uue pildi ID-d.

Pildi üleslaadimine PHP-ga – piltide salvestamine andmebaasi

Kui pilt on edukalt üles laaditud, on oluline kontrollida ka andmebaasi. Siin saad veenduda, et pilt on õigesti salvestatud. Kontrolli andmebaasi, kas uus sissekanne on olemas.

Parima kasutajakogemuse saavutamiseks saad mõelda, et pakud üleslaaditud pildist detailvaadet. See samm nõuab siiski lisakoode, mida saad oma maitse järgi kohandada.

Pildi üleslaadimine PHP-ga – piltide salvestamine andmebaasi

Lõpetuseks peaksid kustutama kõik enam mitte vajalikud failid, näiteks testpildid PNG formaadis, et hõlbustada piltide haldamist ja töötlemist. See aitab sul ka vältida konfliktide tekkimist sarnaste failinimede salvestamisel.

Pildi üleslaadimine PHP abil – Piltide salvestamine andmebaasi

Nüüd on sul täielikult toimiv pildi üleslaadimise süsteem, mis mitte ainult ei võimalda sul pilte üles laadida, vaid tagab ka, et pilt on edukalt andmebaasi salvestatud.

Kokkuvõte – Uue pildi salvestamine andmebaasi PHP abil

Oled nüüd õppinud, kuidas pilte oma veebirakendusse üles laadida ja andmebaasis salvestada PHP abil. Selle rakendamisega oled omandanud teadmised, mis on vajalikud selle süsteemi tõhusaks toimimiseks. Mõtle, kuidas saab seda juhendit rakendada oma projektides ning kohanda seda oma vajadustele vastavaks.

Korduma kippuvad küsimused

Kuidas veenduda, et minu pildi üleslaadimine töötab?Kontrolli, kas processUpload meetod tagastab tõrgeteta.

Millest pean HTML-vormis teada?Seadista enctype väärtusele multipart/form-data, et binaarandmeid saaks õigesti töödelda.

Kas ma saan korraga üles laadida mitu pilti?Jah, selleks pead kohandama HTML-vormi vastavalt ja laiendama oma faili töötlemise loogikat.

Kuidas saan veateateid frontendis kuvada?Säilita veateated seansis ja kuvada need šablonis, kus vaja.