Lagring af indsendte filer i bruger i en MySQL-database

Undertiden er det nyttigt at indsamle data fra dine webstedsbrugere og gemme disse oplysninger i en MySQL databasen. Vi har allerede set, at du kan udfylde en database ved hjælp af PHP, nu tilføjer vi det praktiske ved at lade dataene tilføjes via en brugervenlig webformular.

Derefter skal du oprette process.php, den side, som vores formular sender sine data til. Her er et eksempel på, hvordan man indsamler disse data for at sende til MySQL-databasen:

Før vi prøver det, er vi selvfølgelig nødt til at sikre, at tabellen faktisk findes. Udførelse af denne kode skal oprette en tabel, der kan bruges med vores eksempelfiler:

Nu ved du, hvordan du gemmer brugerdata i MySQL, så lad os tage det et skridt videre og lære at uploade en fil til opbevaring. Lad os først lave vores eksempeldatabase:

Den første ting, du skal være opmærksom på, er et felt, der kaldes id det er indstillet til AUTO_INCREMENT. Hvad er det datatype betyder, at det tæller op for at tildele hver fil et unikt fil-ID, der starter 1 og går til 9999 (da vi specificerede 4 cifre). Du vil sandsynligvis også bemærke, at vores datafelt kaldes

instagram viewer
LONGBLOB. Der er mange typer BLOB, som vi tidligere har nævnt. TINYBLOB, BLOB, MEDIUMBLOB og LONGBLOB er dine muligheder, men vi indstiller vores til LONGBLOB for at give mulighed for størst mulige filer.

Dernæst opretter vi en formular, der giver brugeren mulighed for at uploade hendes fil. Dette er bare en enkel form, selvfølgelig kan du klæde den ud, hvis du ville:

Dernæst skal vi faktisk oprette upload.php, som tager vores brugerfiler og gemmer det i vores database. Nedenfor er prøvekodning til upload.php.

Dernæst bruger den addslashes fungere. Hvad dette gør er at tilføje backslasts, hvis nødvendigt, i filnavnet, så vi ikke får en fejl, når vi forespørger databasen. For eksempel, hvis vi har Billy'sFile.gif, vil det konvertere dette til Billy'sFile.gif. fopen åbner filen og fread er en binær sikker fil læst, så addslashes anvendes om nødvendigt til data i filen.

Dernæst tilføjer vi alle de oplysninger, vores formular indsamlet i vores database. Du vil bemærke, at vi først har opført felterne og værdierne andet, så vi ikke ved et uheld prøver at indsætte data i vores første felt (feltet automatisk tildeling af ID).

Vi lærte allerede, hvordan man henter almindelige data fra vores MySQL-database. Ligeledes ville det ikke være meget praktisk at gemme dine filer i en MySQL-database, hvis der ikke var en måde at hente dem på. Den måde, vi lærer at gøre dette på, er ved at tildele hver fil en URL baseret på deres ID-nummer. Hvis du husker det, da vi uploadede filerne, tildelte vi hver filerne automatisk et ID-nummer. Vi bruger det her, når vi kalder filerne tilbage. Gem denne kode som download.php

For nu at hente vores fil peger vi vores browser til: http://www.yoursite.com/download.php? id = 2 (erstatt de 2 med det fil-ID, du vil hente / vise)

Denne kode er basen til at gøre en masse ting. Med dette som base kan du tilføje en databaseforespørgsel, der viser en liste over filer, og placere dem i en rullemenu, som folk kan vælge. Eller du kan indstille ID til at være et tilfældigt oprettet nummer, så en anden grafik fra din database vises tilfældigt, hver gang en person besøger. Mulighederne er uendelige.

Som vores tidligere kode, der downloadede filer, tillader dette script at filer fjernes bare ved at indtaste deres URL: http://yoursite.com/remove.php? id = 2 (erstatt 2 med det ID, du vil fjerne.) Af åbenlyse grunde, ønsker du det vær forsigtig med denne kode. Dette er selvfølgelig til demonstration, når vi rent faktisk bygger applikationer, vi vil ønske at indføre beskyttelsesforhold der spørg brugeren, om de er sikre på, at de vil slette, eller måske kun tillade personer med en adgangskode at fjerne filer. Denne enkle kode er den base, vi bygger på for at gøre alle disse ting.