Как сделать вывод картинок на php из базы данных

При ситуации если картинок на сайте содержится штук десять или двадцать здесь вполне можно обойтись применением обычного HTML. Но когда количество картинок увеличивается от сотни до тысячи, а чаще изображений бывает в базе от десятков тысяч и более. Тогда без базы данных никак не обойтись. И кроме того, при загрузке картинок на сайт нужно присвоить каждому графическому файлу уникальное имя.

Зачем это нужно?
 

При базе картинок от десятков тысяч до ста тысяч и более, если будем вставлять файлы не меняя названия, имена графических файлов могут повторяться. Вероятность не точная, но при таком количестве файлов гарантия того, что имя файла, например, 1.jpg, defult.jpg, 2.jpg будет повторяться, будет уже точно. И при запросе к базе будет выдаваться ошибка или два три файла одновременно. Чтобы этого избежать будем задавать уникальное имя файла уже при загрузке.

Как это сделать?

В теории это выглядит примерно так:
 

1. Для первоначального уникального имени файла возьмем хеш код из текущего времени, а точнее из функции time(); Присвоим ему значение переменной $time – код следующий $time=time();

2. Затем возьмем эту переменную $time и создадим из неё хеш код, при помощи необратимой функции md5(); код $hash=md5($time);

3. Получим длинный хеш код. Для отображения названия файла не совсем удобно, поэтому при помощи строковой функции substr обрежем его до дясяти знаков. Код следующий : $name=substr($hash,0,10);

4. Теперь нужно в конце дописать расширение графического файла. Это обычно jpg, jpeg, png, gif. Это расширение берем из самого текущего названия графического файла. Код следующий $ext = strrchr($pict, ".");

5. Тогда все файлы, которые будут помещаться в нашу базу данных будут иметь абсолютно уникальные имена. Окончательно название любого файла будет таким $name=$name.$ext; А выглядеть они будут примерно в таком виде 00e80d9dad1b5749.jpg, 0e04592e1084a.jpg
 

С названиями файлов разобрались. Дальше, сами картинки будем хранить в папке /images/, а уникальные названия будут храниться в базе данных MySql.
Выводить картинки можно по индексу id, либо если это необходимо, все сразу. Если в базе более сотни картинок, для просмотра лучше применять постраничную навигацию. То есть на каждую страницу выводить по двадцать или сорок картинок.

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

Добавить комментарий


( ! ) Ф.И.О.
( ! ) Текст сообщения: (Не больше 5000 знаков)

( ! )Введите текст с картинки :
Обновить код
Положительный отзыв Положительный отзыв
Отрицательный отзыв Отрицательный отзыв



Коллекция скриптов и модулей   © 2017