147 votes

Puis-je stocker des images dans MySQL

Doublons Possibles:
Les Images dans MySQL
Le stockage des images dans MySQL

Je suis en train de développer un site web où les utilisateurs de télécharger leurs images dans le cadre de l'inscription. Je le veux que pour chaque image, il devrait y avoir un pouce créé avec PHP (ce qui n'est pas si difficile). Je veux sauver les pouces (puisqu'ils sont de très petite taille) dans la base de données et j'utilise MySQL. (Je ne veux pas sauver le pouce, comme la physique des fichiers sur le disque.)
N'MySQL permettent de sauvegarder et de récupérer des données d'image et comment dois-je faire? Si elle ne prend pas en charge les données de l'image, est-il une base de données gratuite qui n'? Je serai heureux si un lien peut être fourni.
Merci.

306voto

FinalForm Points 2379

Oui, vous pouvez stocker des images dans la base de données, mais il n'est pas conseillé et les mauvaises pratiques.

Ne pas stocker des images dans la base de données. Stocker des images dans les annuaires et stocker des références à des images dans la base de données. Comme stocker le chemin d'accès de l'image dans la base de données ou le nom de l'image dans la base de données.

Les Images peuvent être assez grande, 1 MO >. Même si c'est une petite image, c'est encore une mauvaise pratique. Vous êtes de mettre plus de visites sur vos transactions de base de données que vous pouvez éviter complètement. Pas de gros sites web stocke les images dans leur base de données. Craigslist ne pas le faire. Facebook ne veut pas le faire. Ce n'est pas une bonne idée.

49voto

developerdoug Points 1137

Vous aurez besoin de sauvegarder en tant que blob, le type de données LONGBLOB dans mysql fonctionnera.

Ex:

 CREATE TABLE 'test'.'pic' (
    'idpic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    'caption' VARCHAR(45) NOT NULL,
    'img' LONGBLOB NOT NULL,
  PRIMARY KEY ('idpic')
)
 

Comme d'autres l'ont dit, c'est une mauvaise pratique, mais cela peut être fait. Je ne sais pas si ce code évoluera bien, cependant.

19voto

George Cummins Points 16354

MySQL ne sera jamais un système de fichiers aussi performant qu’un système de fichiers. Si votre application est bien conçue, vous n'avez pas besoin de stocker vos images dans une base de données.

Cependant, vous avez demandé si MySQL le permet, et c'est le cas. S'il vous plaît voir: http://www.phpriot.com/articles/images-in-mysql

5voto

bsimic Points 675

Vous devrez stocker l'image dans la base de données en tant que BLOB.

vous voudrez créer une colonne appelée PHOTO dans votre table et la définir comme un mediumblob.

Ensuite, vous voudrez l'obtenir à partir du formulaire comme suit:

     $data = file_get_contents($_FILES['photo']['tmp_name']);
 

puis définissez la colonne à la valeur dans $ data.

Bien sûr, c'est une mauvaise pratique et vous voudrez probablement stocker le fichier sur le système avec un nom qui correspond au compte de l'utilisateur.

0voto

Bueller Points 1798

http://www.weberdev.com/ViewArticle/Saving-Images-in-MySQL

Une simple recherche sur Google a renvoyé des milliers de pages supplémentaires avec des informations sur la procédure à suivre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X