Je préfère renommer les fichiers images lors téléchargés et de les stocker en ligne db liée à son propre parent (utilisateur, produit,) ... puis les télécharger dans 3 dossiers:
/uploads
/img
/products
/small
/medium
/xxl
les redimensionner en petits (50x50), moyen (90x90), xxl (dimension originale), avant de les déplacer dans ces répertoires.
si vous avez besoin d'images SEO vous pouvez les stocker par exemple:
id | product | image
1 book 1-book.png
et vous obtiendrez id et le nom du produit dans le même fichier image.
ou vous pouvez même simplement stocker
id | product | image
1 book 1.png
est alors simple de joindre des chemins src:
/*Config file*/
$config['base_static_products_url'] = 'uploads/img/products/';
/*View file*/
<img src="<?php echo base_url().$this->config->config['base_static_products_url'].'/small/'.$row->image ?>" alt=""/>
OR (no SEO)
<img src="<?php echo base_url().$this->config->config['base_static_products_url'].'/small/'.$row->id.'.png' ?>" alt=""/>
Pascal MARTIN, Votre réponse semble assez convaincant. Cependant, je dois dire que, après avoir essayé les deux méthodes, je n'ai pas vraiment vu une grande différence dans les performances (à savoir, stocker des images en externe, par opposition à les conserver sur une BD en tant que BLOBS). Peut-être que mon volume de données n'était pas beaucoup. Une autre préoccupation est, suggérez-vous que la lecture de plusieurs images BLOB à partir d'une base de données est plus lente que la lecture de plusieurs fichiers à partir du système de fichiers? Honnêtement, je ne peux pas accepter cela, mais le seul problème que je vois est que les sauvegardes peuvent être plus petites si les fichiers étaient conservés à l'extérieur. – itsols