[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Хранить или не хранить пути в до картинки в бд.
Страницы: 1, 2, 3, 4, 5
Joker
Сразу на примере с исходниками есть сайт новостей, в админке при создании новости заливается картинка (разумеется одна, ленивые менджеры в жизнь не пойдут в фотошоп чтоб отресайзить), как только она заливается у нас ресайзить с ложиться в сайт.


моё ОООООчень простое решение, которое требует чтоб путь не хранился в бд:

после ресайза, генерим новое имя, это я делаю всегда тупым считчиком, предположим нове име 12345.jpg, ложим в 2 папки

/image/ - общая папка воообще для всех картинок
--/original/12345.jpg (вдруг понадобиться еще один размер чтоб было от чего отресайзить)
--/300x300/12345.jpg
--/50x50/12345.jpg

соответсвенно в бд требуется 1 колонка куда я спокойно записываю только название и расширение

таблица news:
id|title|img
1|news 1|12345.jpg


после когда верстальшик делат вывод я ему в шаблон отдаю всю запись
а также говорю что есть функцию для формирования


в итоге получается 2 шаблона

шаблон 1 список

<?php foreach ($items as $item): ?>
<div>
<img
src="<?php image_url($item['img'],'50x50');?>" />
<?php
echo $item['title']; ?>
</div>
<?php
endforeach;?>


шаблон 2 сама новость

<div>
<img
src="<?php image_url($item['img'],'300x300');?>" />
<?php
echo $item['title']; ?>
и тут еще всякие текста которых нет в бд т.к. они не нужны для этой темы
</div>



у меня есть 2 функции:
Свернутый текст
/**
* в этих константах настройки, которые все хранят где хотят и как хотя xD)
* IMAGE_DIR - путь до папки с тумбами картинок относительно корня
* IMAGE_URL - ссылка относительно домена до папки с картинками
* URL_ROOT - сам домен
* DIR_ROOT - корень проекта
*
* всегда и везде есть в конфе слеш.
*
*/

function image_url($name,$size = '150x150')
{
echo image_url_return($name,$size);
}

function image_url_return($name,$size = '150x150')
{
$path = DIR_ROOT . IMAGE_DIR . $size . DIRECTORY_SEPARATOR . $name;

if (file_exists($path))
{
return URL_ROOT . IMAGE_URL . $size . '/' . $name;
}
else
{
return URL_ROOT . IMAGE_URL . $size . '/none.jpg';
}
}


соответвенно
в 1 шаблоне функция принимает значение 12345.jpg и возвращает domen.ru/img/50x50/12345.jpg

в 2 шаблоне функция принимает значение 12345.jpg и возвращает domen.ru/img/300x300/12345.jpg
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.