Magazine Internet

MySQL : Stocker un fichier dans une base de données

Publié le 15 novembre 2009 par Methylbro

Les Objets Larges Binaires (BLOB)

Pour stocker nos fichiers au sein de notre base de données nous allons utiliser un type de données que les néophytes découvriront sans doutes pour la première fois : les Objets Larges Binaires ou BLOB pour Binary Large Object.

Le BLOB est un type de donnée permettant le stockage d’informations sous forme binaire. On l’utilise le plus souvent pour stocker des fichiers en tout genre (images, sons ou videos …) directement dans le champ d'une table d'une base de données.

Pour notre exemple nous utiliserons MySQL comme système de gestion de base de données. Sachez que celui-ci propose plusieurs types différents d’objets larges qui ne diffèrent que par la taille maximale des données qu’ils peuvent stocker.

Parmi eux nous utiliserons le type LONGBLOB car ce dernier propose la capacité maximale de stockage ; mais le choix du type à utiliser variera selon les cas que vous pourrez rencontrer lors d’une application pratique.

Création de la table

La première étape consiste donc à créer la table qui viendra stocker nos différents fichiers. Outre le nom du fichier et le contenu même du fichier, nous conserverons également le type de fichier (« image/jpeg » pour une image par exemple) et la date de la dernière modification du fichier.

Ces informations supplémentaires nous seront utiles par la suite pour envoyer des en-têtes HTTP corrects au visiteurs ainsi que pour gérer un petit cache côté serveur.

CREATE TABLE `FILE` (
`name` varchar(255) NOT NULL,
`type` varchar(255) NULL,
`updated_date` timestamp NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`data` longblob NULL,
PRIMARY KEY (`name`)
)TYPE=MyISAM;

Un champ de fichier dans PHPMyAdmin

Une fois que vous aurez créer votre table avec la requête SQL CREATE TABLE ci-dessus, vous vous apercevrais sans doutes que PHPMyAdmin vous proposera un formulaire d’insertion un peut particulier.

En effet, vous verrez apparaître un champ d’envoi de fichier pour la valeur data. Comme vous pouvez le voir donc, notre champ data est bien destiné à recevoir un fichier.

Formulaire d'insertion de PHPMyAdmin pour la table FILE

Dans un prochain article ; nous verrons comment enregistrer des fichiers au sein de cette table directement depuis un script PHP.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Methylbro 17 partages Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog