hvordan lagre bilder i MySQL database

MySQL er blant de populære databasebehandlingssystemene. Den kan brukes til å lagre og hente data utformet i henhold til programmene. De fleste programmene kreves for å administrere bildene. Denne opplæringen gir muligheter til å lagre bilder i En MySQL tabell.

Merknader: Fagfolk kan hjelpe deg med bildedatabaseutvikling for din bedrift eller ditt prosjekt.

Lagre Bildebanen

den enkleste tilnærmingen er å lagre bilder i kataloger på filsystemet og lagre referanser til bildene i databasen som SQL & MySQL, for eksempel banen til bildet, bildenavnet og så videre. Alternativt kan du til og med holde bilder på EN CDN eller mange verter over noen store områder av betydelig territorium og beholde referansene for å få tilgang til disse ressursene i databasen.

På denne måten er vi ikke pålagt å holde hele bildet i databasen, men å lagre bare banen til bildet som er lagret i en mappe. Lagring av bilder er bra hvis bildene alltid vil være i samme mappe, dvs. hvis hvert bilde vil ha sin unike bane som alltid vil være den samme. Imidlertid skal bildene i noen tilfeller overføres fra en mappe til en annen. I så fall er den beste løsningen å lage en dynamisk bane til bildefilen, så hvis bildet må flyttes, ville det ikke være noen forpliktelse til å endre databasen.

vi kan oppdatere en eksisterende tabell for å legge til et bildebanefelt som vist nedenfor.

// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)

En annen tilnærming er å lage en egen tabell for bildene og legge til en referanse i tabeller ved hjelp av bildetabellen. På denne måten kan flere tabeller lagre bildene i en enkelt tabell. Du kan bruke tabellen nedenfor for å lagre bildene dine.

// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`directory` VARCHAR(512) NULL,
`size` FLOAT NOT NULL,
`type` VARCHAR(50) NOT NULL,
`url` VARCHAR(2048) NULL,
`medium` VARCHAR(1024) NULL,
`small` VARCHAR(1024) NULL,
`thumb` VARCHAR(1024) NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;

i ovennevnte tabell er navnet det faktiske navnet på bildet som lagres, og tittelen er valgfri for å få innspill fra brukerne som laster opp bildet. Type-kolonnen kan også bestemme om bildet skal lagres lokalt eller PÅ EN CDN. Hvis den er lagret lokalt, kan vi bruke kolonnekatalogen til å spesifisere banen der bildet er lagret. I TILFELLE AV CDN kan vi bruke kolonnens URL for å få basisbanen til bildet. Bortsett fra type, katalog og URL, kan vi også bruke små, mellomstore og store til å lagre det samme bildet i flere størrelser.

når du trenger å bruke bildene, henter du dem fra disken ved hjelp av den angitte banen. Denne tilnærmingen fordel er at bildene ikke nødvendigvis trenger å bli lagret på en disk; vi kan holde EN URL i stedet for en bildebane og hente bilder fra et hvilket som helst internett-tilgjengelig sted.

Lagre Bilde I MySQL-Tabellen

En Annen måte å lagre et bilde i MySQL-databasen er å lagre det i selve tabellen. Bildestørrelsen kan være ganske stor, noen ganger større enn 1 ELLER 2MB. Så, lagring av bilder i en database kan legge ekstra belastning på databasen og nettverket mellom databasen og webserveren din hvis de er på separate verter.

i denne tilnærmingen kan bildefilene være utfordrende å administrere. Du må først gjenopprette dem fra databasen før andre operasjoner skal utføres.

det er noen unntak der hele databasen er lagret I RAM. MySQL-databaser lagres sekvensielt på en disk. Dette betyr at databasebildefilene konverteres til blobs, innebygd i en database, og deretter holdes på en disk. Vi kan unngå mange problemer ved å bare lagre dem på en disk som nevnt i den første tilnærmingen.

opprett nå tabellbildet for å lagre bildene i databasen. Jeg har brukt id for å identifisere hvert bilde og bildetekst for å lagre navnet på bildet for visningsformål. Bilde-kolonnen lagrer bildet i tabellen ved hjelp av datatypen SOM LONGBLOB.

// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`size` FLOAT NOT NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`picture` LONGBLOB NOT NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;

Sammendrag

denne opplæringen ga alternativene for å lagre bilder ved Hjelp Av MySQL-databasen. Den samme tilnærmingen kan følges for andre databaser.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.