Lagring av innsendte filer i bruker i en MySQL-database

Noen ganger er det nyttig å samle inn data fra nettstedene dine og lagre denne informasjonen i en MySQL database. Vi har allerede sett at du kan fylle en database ved hjelp av PHP, nå vil vi legge til det praktiske ved å la dataene legges til gjennom et brukervennlig nettskjema.

Deretter må du lage process.php, siden som skjemaet vårt sender dataene sine til. Her er et eksempel på hvordan du samler inn disse dataene for å legge ut i MySQL-databasen:

Før vi prøver det, må vi selvfølgelig sørge for at tabellen faktisk eksisterer. Å utføre denne koden skal opprette en tabell som kan brukes med våre eksempelfiler:

Nå vet du hvordan du lagrer brukerdata i MySQL, så la oss ta det et skritt videre og lære hvordan du laster opp en fil for lagring. La oss først lage vår eksempeldatabase:

Det første du bør legge merke til er et felt som heter id som er satt til AUTO_INCREMENT. Hva er dette data-type betyr at den vil telle opp for å tildele hver fil en unik fil-ID som starter på 1 og går til 9999 (siden vi spesifiserte 4 sifre). Du vil sannsynligvis også legge merke til at datafeltet vårt heter

instagram viewer
LONGBLOB. Det er mange typer BLOB som vi har nevnt før. TINYBLOB, BLOB, MEDIUMBLOB og LONGBLOB er dine alternativer, men vi setter vår til LONGBLOB for å gi rom for størst mulig filer.

Deretter oppretter vi et skjema som lar brukeren laste opp filen sin. Dette er bare en enkel form, selvfølgelig, du kan kle den ut hvis du ville:

Deretter må vi faktisk opprette upload.php, som vil ta brukerne filen og lagre den i vår database. Nedenfor er prøvekoding for upload.php.

Deretter bruker den addslashes funksjon. Hva dette gjør er å legge tilbakeslag hvis nødvendig i filnavnet, slik at vi ikke får feil når vi spør i databasen. Hvis vi for eksempel har Billy'sFile.gif, vil den konvertere dette til Billy'sFile.gif. fopen åpner filen og fread er en binær sikker fil lest slik at addslashes brukes på data i filen om nødvendig.

Deretter legger vi til all informasjon skjemaet vårt samlet inn i vår database. Du vil merke at vi først har oppført feltene og verdiene andre, slik at vi ikke ved et uhell prøver å sette inn data i vårt første felt (ID-feltet for automatisk tildeling).

Vi har allerede lært hvordan vi kan hente vanlige data fra MySQL-databasen. Likeledes ville det ikke være veldig praktisk å lagre filene dine i en MySQL-database hvis det ikke var en måte å hente dem på. Måten vi skal lære å gjøre dette på er ved å tildele hver fil en URL basert på deres ID-nummer. Hvis du vil huske da vi lastet opp filene, tilordnet vi hver av filene automatisk et ID-nummer. Vi bruker det her når vi kaller filene tilbake. Lagre denne koden som download.php

Nå for å hente filen vår, peker vi nettleseren vår til: http://www.yoursite.com/download.php? id = 2 (erstatt de to med hvilken fil-ID du vil laste ned / vise)

Denne koden er basen for å gjøre mange ting. Med dette som base kan du legge til et databaseforespørsel som vil liste filer, og legge dem i en rullegardinmeny for folk å velge. Eller du kan angi at ID skal være et tilfeldig opprettet nummer slik at en annen grafikk fra databasen vises tilfeldig hver gang en person besøker. Mulighetene er endeløse.

I likhet med vår forrige kode som lastet ned filer, lar dette skriptet filer fjernes bare ved å skrive inn deres URL: http://yoursite.com/remove.php? id = 2 (erstatt 2 med ID-en du vil fjerne.) Av åpenbare grunner, vil du vær forsiktig med denne koden. Dette er selvfølgelig for demonstrasjon, når vi faktisk bygger applikasjoner vil vi ønske å sette i verk det spør brukeren om de er sikre på at de vil slette, eller kanskje bare tillate personer med passord å fjerne filer. Denne enkle koden er basen vi vil bygge videre på for å gjøre alle disse tingene.