2010-05-31 4 views
3

Quelle est la meilleure façon de stocker des images? Actuellement, lorsqu'une image est téléchargée, je la redimensionne à 3 tailles différentes (une vignette, une taille normale et une grande taille). J'enregistre dans une base de données une description de l'image, le format, et j'utilise le numéro d'identification de la base de données comme nom d'image. Chaque image de taille a son propre répertoire.Comment les images doivent-elles être stockées lorsque plusieurs tailles sont nécessaires?

Dois-je stocker les images dans la base de données? Devrais-je seulement stocker la plus grande taille et générer la vignette au besoin? Ou d'autres idées que vous avez?

+0

Quelle est votre application? Réseau social? Photos de stock? – egrunin

+0

Ventes de VR. Le concessionnaire charge environ 20 à 30 images par véhicule récréatif et a généralement entre 100 et 200 véhicules récréatifs. J'ai également des plans pour une application à plus grande échelle qui aura éventuellement plus de 10.000 articles avec plusieurs images pour chaque élément. –

+0

Voir: http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay http://stackoverflow.com/questions/2517752/images-in-database-vs-file -system – nickf

Répondre

2

Qu'est-ce que vous avez décrit me semble raisonnable. Vous pouvez stocker les images dans votre base de données mais vous ne remarquerez aucune amélioration majeure des performances et, si votre hébergeur limite la taille de votre base de données MySQL, vous risquez de constater que vous surpayez l'espace de la base de données. En ce qui concerne le redimensionnement des images, le faire une fois et stocker les trois copies est beaucoup moins coûteux en termes de calcul que de générer des images plus petites une fois par requête; Cependant, vous pouvez envisager de demander au navigateur de créer votre miniature (spécifiez simplement une balise img avec le jeu src sur l'image en taille réelle plus les attributs width/height), ce qui vous permettra d'économiser la puissance du processeur et l'espace disque le coûteux d'avoir des miniatures pas si jolies (les navigateurs mesurent généralement les images pour la rapidité au prix de la qualité).

0

Si vous aviez un site alimenté drupal, cette fonctionnalité est construite avec http://drupal.org/project/imagecache

+0

Je n'utilise pas de CMS. J'ai l'intention de construire une application à partir de zéro que je ne veux pas utiliser un CMS pour. –

2

Vous pouvez choisir un mélange des deux mondes, en enregistrant la grande image sur le SQL (ou le disque dur). Vous générez les miniatures à la demande, mais vous les mettez en cache sur le serveur pendant un certain temps.

Cela signifie qu'à tout moment vous aurez sur le disque les grandes images et les miniatures pour les plus récentes/fréquemment utilisées.

Questions connexes