Vartotojo pateiktų failų saugojimas „MySQL“ duomenų bazėje

Kartais naudinga rinkti duomenis iš savo svetainės vartotojų ir saugoti šią informaciją „MySQL“ duomenų bazę. Mes jau matėme, kad galite užpildyti duomenų bazę naudodami PHP, dabar pridėsime, kad duomenis bus galima pridėti naudojant patogią žiniatinklio formą.

Kitas, jūs turite padaryti process.php, puslapį, į kurį mūsų forma siunčia savo duomenis. Čia yra pavyzdys, kaip surinkti šiuos duomenis, kad būtų galima paskelbti „MySQL“ duomenų bazėje:

Žinoma, prieš išbandydami, turime įsitikinti, ar lentelė iš tikrųjų egzistuoja. Vykdydami šį kodą, turėtumėte sukurti lentelę, kurią galima naudoti su mūsų pavyzdžių failais:

Dabar jūs žinote, kaip saugoti vartotojo duomenis „MySQL“, todėl paženkime dar vieną žingsnį į priekį ir išmokime įkelti failą saugoti. Pirmiausia sudarykime pavyzdinę duomenų bazę:

Pirmas dalykas, kurį turėtumėte pastebėti, yra laukas, vadinamas ID kad yra nustatytas AUTO_INCREMENT. Kas tai duomenų tipas reiškia, kad kiekvienai rinkmenai bus priskirtas unikalus failo ID, prasidedantis nuo 1 iki 9999 (nes mes nurodėme 4 skaitmenis). Jūs taip pat tikriausiai pastebėsite, kad mūsų duomenų laukas yra vadinamas

instagram viewer
LONGBLOB. Kaip minėjome anksčiau, yra daugybė BLOB tipų. „TINYBLOB“, „BLOB“, „MEDIUMBLOB“ ir „LONGBLOB“ yra jūsų parinktys, tačiau mes nustatėme, kad „LONGBLOB“ leistų sukurti kuo didesnius failus.

Tada mes sukursime formą, leidžiančią vartotojui įkelti savo failą. Tai tik paprasta forma, aišku, jūs galite apsirengti, jei norėtumėte:

Kitas, mes turime iš tikrųjų sukurti „upload.php“, kuris paims mūsų vartotojų failą ir išsaugos jį mūsų duomenų bazėje. Žemiau pateikiamas „upload.php“ kodavimo pavyzdys.

Kitas, jis naudoja ADDSLASHES funkcija. Tai reiškia, kad prireikus į failo pavadinimą įdėkite pasviruosius brūkšnius, kad nepateiktume klaidos užklausdami duomenų bazę. Pvz., Jei turime „Billy'sFile.gif“, ji tai konvertuos į „Billy's File File“. FOPENAS atidaro failą ir DAUG yra dvejetainis saugus failas, skaitomas taip, kad ADDSLASHES jei reikia, jis naudojamas failo duomenims.

Tada į duomenų bazę įtraukiame visą mūsų formos surinktą informaciją. Pastebėsite, kad laukus išvardijome pirmiausia, o reikšmes - antra, todėl netyčia nemėginame įterpti duomenų į pirmąjį lauką (automatinis ID priskyrimo laukas).

Mes jau išmokome atgauti paprastus duomenis iš mūsų „MySQL“ duomenų bazės. Panašiai failų saugojimas „MySQL“ duomenų bazėje nebūtų labai praktiškas, jei nebūtų būdo juos atkurti. Kaip mes išmoksime tai padaryti, priskirdami kiekvienam failui URL pagal jų ID numerį. Jei atsiminsite įkėlę failus, kiekvienam iš jų automatiškai priskyrėme ID numerį. Mes tai naudosime čia, kai atšauksime failus. Išsaugokite šį kodą kaip „download.php“

Dabar, norėdami nuskaityti failą, nukreipiame į savo naršyklę į: http://www.yoursite.com/download.php? id = 2 (pakeiskite 2 bet kokiu failo ID, kurį norite atsisiųsti / parodyti)

Šis kodas yra pagrindas atlikti daugybę dalykų. Naudodami tai kaip pagrindą, galite įtraukti į duomenų bazės užklausą, kurioje būtų failų sąrašas, ir sudėti juos į išskleidžiamąjį meniu, kad žmonės galėtų pasirinkti. Arba galite nustatyti, kad ID būtų atsitiktinai sukurtas skaičius, kad kiekvieną kartą, kai asmuo apsilankytų, atsitiktinai būtų parodytas kitoks jūsų duomenų bazės paveikslėlis. Galimybės yra begalinės.

Kaip ir ankstesnis failas atsisiuntęs kodas, šis scenarijus leidžia failus pašalinti tik įvedus jų URL: http://yoursite.com/remove.php? id = 2 (2 pakeiskite ID, kurį norite pašalinti.) Dėl suprantamų priežasčių norite būkite atsargūs su šiuo kodu. Tai, be abejo, yra demonstravimas, kai iš tikrųjų kurdami programas norėsime įdiegti tas apsaugos priemones paklauskite vartotojo, ar jie tikri, kad nori ištrinti, o gal leisti žmonėms, turintiems slaptažodį, pašalinti failus. Šis paprastas kodas yra pagrindas, į kurį mes remsimės atlikdami visus tuos dalykus.

instagram story viewer