Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Archiviazione delle immagini in MySQL :: Indice Php

Archiviazione delle immagini in MySQL

Categoria: Php Inserito il: 02-05-2006 Stampa (10772 click)

Innanzitutto poniamoci una domanda: è possibile allocare immagini sotto forma di informazioni all'interno di un database? Naturalmente è possibile; nello stesso modo sarà possibile gestire queste informazioni, modificarle ed estrarle utilizzando gli stessi comandi SQL che normalmente vengono impiegati per l'amministrazione di stringhe ed interi.

Potremo quindi usare il comando INSERT per l'archiviazione delle immagini, SELECT per la loro estrazione e così via; PHP costituirà un'interfaccia ideale per automatizzare tutti i processi di amministrazione delle immagini conservate all'interno di un database, che nel nostro caso sarà un archivio creato tramite il DBMS MySQL.

Ma quali sono i vantaggi nel preferire l'allocazione delle immagini in tabelle piuttosto che in semplici cartelle salvate nella root del Web server? Vediamone alcuni:

  • sarà possibile salvare in ogni momento i nostri dati tramite una semplice esportazione (Dump) delle tabelle; è certamente molto più semplice, veloce e sicuro un singolo comando di esportazione tramite Shell o PhpMyAdmin, piuttosto che il download via FTP di centinaia di file sparsi nel nostro spazio web;
  • non sarà più possibile accedere direttamente alle immagini tramite URL, con indubbi vantaggi relativi alla sicurezza dei dati.
  • non si avranno più problemi relativi ai percorsi di accesso alle immagini, queste infatti si troveranno all'interno di un database raggiungibile attraverso la medesima procedura da una qualsiasi pagina indipendentemente dalla sua posizione;
  • non sarà più necessario settare permessi sulle cartelle, questo diminuirà l'esigenza di accedere al nostro spazio tramite FTP con conseguente risparmio di tempo.
Naturalmente non dovremo ignorare alcuni possibili svantaggi di questa metodologia, li esporremo in modo che il lettore possa valutare quale sistema preferire tra la classica allocazione delle immagini in cartelle e quella in tabelle:
  • l'archiviazione di file nel database può comportare dei rischi di insuccesso nell'INSERT e nella SELECT delle informazioni per documenti di grandi dimensioni;
  • sarà possibile accedere alle nostre immagini soltanto tramite comandi SQL;
  • le immagini mediamente "pesano" molto più dei testi e i nostri database diverranno in poco tempo molto ampi.
Detto questo, passiamo alla creazione di una tabella progettata per la gestione delle immagini:
$sql = 'CREATE TABLE `immagini` ('
. ' `id` int(11) NOT NULL auto_increment,'
. ' `nome` varchar(50) NOT NULL default "",'
. ' `size` varchar(25) NOT NULL default "",'
. ' `type` varchar(25) NOT NULL default "",'
. ' `immagine` blob NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' )';
Il campo destinato all'allocazione delle immagini sarà quello caratterizzato dal tipo di dato BLOB (Binary Large Object) specificamente dedicato al trattamento di questa tipologia di informazioni.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Rinominare un computer da /etc/hosts
Quando installiamo Linux su un elaboratore, se il sistema non riceve istruzioni differenti, di default questo verrà chiamato:
localhost
Potrebbe naturalmente presentarsi... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti