Doublons Possibles:
Les Images dans MySQL
Le stockage des images dans MySQLJe 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.
Réponses
Trop de publicités?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.
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.
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
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.
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.