Astuces pratiques de développement Web

Auteur: Mohamed CHINY Durée necessaire pour le cours de Astuces pratiques de développement Web Niveau recommandé pour le cours de Astuces pratiques de développement Web Supports vidéo disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz non disponibles pour ce cours

Page 3: Stocker les images dans une base de données

Toutes les pages

Stocker vos images dans la base de données

Une image dans la base de données?

Dans la première astuce de ce cours nous avons vu comment restreindre l'accès aux images voulues en utilisant le fichier .htaccess tout en ayant la possibilité de les afficher à volenté en les exportant à l'aide d'un script PHP. Cette fois nous allons voir comment stocker carrèment les images dans une base de données à l'aide d'une astuce simple qui consiste à l'utilisation du type BLOB qui est un type de données utilisées dans les bases de données et qui a pour rôle d'accueillir les binaires (autrement dit, les fichiers).

En fait, un fichier peut être sérialisé pour devenir ensuite une séquence de fraguements semblables à des chaînes de caractères. Sauf que ces chaînes là ne sont pas lisibles directement vu leur encodage un peu spécial, mais peuvent retrouver facilement leur forme initiale de fichier, en l'occurence des images.

Bien qu'un grand nombre de développeurs apprécient le fait de stocker les images dans la base de données, cette méthode à quand même quelques inconvénents que je vais résumer dans ces deux points:
  • Une image pèse lourd (de quelques dizaines de Kilo octets à quelques Méga octets), ce qui peut rapidement gonfler la base de données, d'autant plus que la plupart des hébergeurs offrent un grand espace d'hébergement de fichiers (des Giga octets) contre un petit espace pour la base de données (généralement quelques centaines de Méga Octets).
  • Une base de données qui contient beaucoup d'images peut présenter des latences au moment de l'exécution des requêtes select.

Donc, personnellement je préfère plus la méthode qui consiste à déposer les images dans un dossier (tout en leur sécurisant l'accès) plutôt qu'à les stocker dans une base de donnée. Mais on va quand même voir comment ça se passe.

Passons à la pratique