10
votes

Images dans mysql

existe-t-il un type de données associé à une image dans MySQL qui peut être utilisé pour stocker des images pour chaque record?


1 commentaires

J'ai trouvé Cette réponse comme la meilleure solution ...


5 Réponses :


1
votes

Essayez l'un des Types de données blob . < / p>


0 commentaires

8
votes

Vous devrez utiliser une sorte de blob type:

Référence MySQL: Types de blob et de texte

Quel type que vous utilisez dépend de la taille de l'image que vous souhaitez stocker.


0 commentaires

8
votes

performance-sage Il est probablement préférable de stocker le fichier en tant que fichier sur le lecteur et d'écrire uniquement le nom de fichier ou le fichier FilePath et peut-être le type MIME dans la base de données. Mais comme les autres disent, blob est ce que vous cherchez.


0 commentaires

9
votes

Comme dit précédemment, blob est le chemin à parcourir, mais, comme points SanHolo sur c'est pas vraiment la performance sage et vous finirez par rencontrer des problèmes que votre base de données peut vraiment se développer très vite!

Pourquoi n'exposez-vous pas le nom du fichier sur la base de données et stocker le fichier sur le serveur ?

La raison principalement de ne pas permettre que cela ne permettrait pas de la sécurité problèmes. Si vous essayez vraiment de couvrir vos bases en ne permettant pas à tous les utilisateurs de voir ou de saisir le contenu, vous avez deux options.

Option A) Donnez au fichier un unique, non identifiable nom comme Flickr fait. Le nom du fichier comporte deux hachages. Un hachage d'utilisateur et un hasch. Le deuxième hachage est secret et le seul moyen que vous puissiez obtenir ce serait par procès et par erreur. Jetez un coup d'oeil dans ce fichier je sur Flickr . Est protégé par l'utilisateur (seule la famille peut voir) mais vous pourrez y accéder simplement bien car l'URL elle-même sert de protection: http://farm2.static.flickr.com/1399/862145282_bf83f25865_bf83f25865_b.jpg , même si vous essayiez de générer des hachages et que vous avez trouvé un problème valide, il serait caché par L'anonymat comme vous ne sauriez pas qui c'était de.

Option B) Utilisez une clé de serveur pour limiter l'accès. Cette méthode est plus sûre mais plus chère pour le serveur. Vous allez configurer un script qui permettra / refuser l'accès au fichier en fonction de session_permissions ou de quelque chose de même. Regardez le code suivant qui serait appelé en accédant à quelque chose comme:

http://yourserver.com/geprotetiedfile.php?filename=213333.jpeg xxx


1 commentaires

J'ajouterais également un fichier .htaccess à la racine de votre répertoire de fichiers, placez-le dans la commande Deny / Autoriser Deny de tous et vous êtes en sécurité.



1
votes

Oui, il existe des types de données pour stocker l'image dans la base de données.

blob (gros objet binaire) qui peut être spécialement utiliser pour stocker des fichiers image dans la base de données. p> blockQuote>

Les quatre types de blob sont 'TinyBlob', 'Blob', 'MEXIMOBLOB CODE> et ' LONGBLOB ' CODE>. Celles-ci ne diffèrent que dans la longueur maximale des valeurs qu'elles peuvent contenir. P>

Création de table: p>

CREATE TABLE image (imgname VARCHAR(33) , photo LONGBLOB );


0 commentaires