Я предпочитаю переименовывать файлы изображений при загрузке и сохранять их в строке базы данных, связанной с его собственным родителем (пользователь, продукт,) ... затем загружать их в 3 папки:
/uploads
/img
/products
/small
/medium
/xxl
изменив их размеры на маленькие (50x50), средние (90x90), xxl (исходное измерение), прежде чем перемещать их в эти каталоги.
если вам нужны изображения SEO, вы можете сохранить их, например:
id | product | image
1 book 1-book.png
, поэтому вы получите идентификатор и название продукта в одном файле изображения.
или вы можете просто хранить
id | product | image
1 book 1.png
тогда просто присоединить пути 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=""/>