|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
Добрый день. Подскажите такой вопрос? Вот к примеру загрузил я через обработчик 3 картинки к товарам, сами физические файлы ушли в папку к примеру upload. А как положить лучше названия картинок в базу? Кто то хранит вообще картинки в самой базе, кто то в структуре по датам или месяцам когда их много чтобы ускорить работу. Вопрос к знатокам. Как лучше загружать и хранить несколько изображений/названий для сайта на PHP и MySQL Спасибо за ответы, поделитесь опытом ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 10:28 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
angrybotКак лучше загружать и хранить несколько изображений/названий для сайта Несколько замечаний к постановке вопроса. Только загружать и хранить хотите, а использовать эти изображения в будущем не собираетесь? Если собираетесь, тогда, вероятно, потребуются ещё какие-то средства категоризации, поиска и вряд ли они ограничатся вышеупомянутой датой. Рассматривать только изображения можно лишь в самом простейшем случае. В общем случае к товару требуются не картинки, а дополнительные файлы. Картинка дает лишь некоторое, но далеко не всегда достаточное представление об объекте. Далее в ход идут описания и инструкции в PDF, чертежи в DXF или DWG, какие-то таблицы, видеофайлы и т.д. в заранее непредсказуемых форматах. Таким образом, дабы не плодить сущности, есть смысл отказаться от понятия "3 картинки" и перейти к медиафайлам в общем смысле. angrybotА как положить лучше названия картинок в базу?Таблица приблизительно такой структуры: id_медиафайла, имя_файла_в_хранилище, реальное_имя_файла (под которым он был загружен), MIME_тип, размер_файла_в_байтах, id_категории, размеры_изображения (используется только для изображений), дата_загрузки, id_пользователя (который загрузил файл). Имя файла для хранения генерится системой. В идеале, оно должно быть уникальным, как и ID, но кроме цифр может содержать и буквы. Сами файлы удобно хранить в древовидной структуре, где директория является частью имени файла, типа так: "uploads/6a/4c/b3/6a4cb3f2ac". При такой структуре дерева в базе достаточно хранить только имя файла, а путь легко вычисляется по необходимости. Использовать возрастающую последовательность не вполне удобно, так как заполняемость дерева получится неравномерной. Впрочем, это дело вкуса. Более 1...2 тысяч файлов в директорию не следует складывать. Тип MIME нужен для правильной отдачи фала пользователю, то же самое и с размером в байтах и с реальным именем файла. Категории (или разделы, типы) - это условные группировки по назначению или принадлежности файлов. Например, "Экскаваторы - общие виды", "Автомобили - агрегаты - коробки передач", "Крепеж - гайки". Если на файл предполагается несколько категорий, то связь между файлом и категориями есть смысл сразу вынести в отдельную таблицу. Это к вопросу о поиске файла при повторном использовании. angrybotзагрузил я через обработчик 3 картинки к товарамЭто были три картинки к одному товару или две к одному и одна к другому или все три картинки относятся к 15 товарам? ;-) В этом смысле соотнесения могут быть весьма различными. Если кратко, таблица вида: id_товара, id_медиафайла, id_блока (где отображать этот файл), порядок_сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 12:03 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
vkle, Спасибо за совет. Кто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 18:05 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
Лучше развернуть кластер swift! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 18:25 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
Hett, А подробнее можно? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 18:59 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
angrybotКто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке?Смотря какие критерии правильности. В плюсы можно записать довольно полное хранение контента сайта. И дерево директорий строить не нужно. Да, бывает, и шаблоны тоже хранят в базе и даже скрипты. В общем то, способ довольно тривиальный, но не слишком распространенный. В минусах у такого способа хранения файлов, пожалуй, невозможность отдачи файлов непосредственно фронтендом - кто-то должен подключиться к СУБД, сделать запрос и получить данные, отдать клиенту нужное поле. Безотносительно правильности: в папке хранить чуть-чуть проще. Приблизительно на пару скриптов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2018, 19:59 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
vkleangrybotКто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке?Смотря какие критерии правильности. В плюсы можно записать довольно полное хранение контента сайта. И дерево директорий строить не нужно. Да, бывает, и шаблоны тоже хранят в базе и даже скрипты. В общем то, способ довольно тривиальный, но не слишком распространенный. В минусах у такого способа хранения файлов, пожалуй, невозможность отдачи файлов непосредственно фронтендом - кто-то должен подключиться к СУБД, сделать запрос и получить данные, отдать клиенту нужное поле. Безотносительно правильности: в папке хранить чуть-чуть проще. Приблизительно на пару скриптов :) Понимаю, что много возражений, но когда как-то писал на аспнет, очень удобно хранил картинки в базе в виде базе64. Очень рекомендую. Офигенно удобно. Тем более, что "битых" ссылок не бывает, как и "левых" картинок. Называется ссылочная целостность. ПС. На пхп времени нет всё красиво делать, поэтому - в каталоге. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2018, 19:31 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
авторПонимаю, что много возражений, но когда как-то писал на аспнет, очень удобно хранил картинки в базе в виде базе64. Очень рекомендую. Офигенно удобно. Тем более, что "битых" ссылок не бывает, как и "левых" картинок. Называется ссылочная целостность. не выдерживает нагрузки от слова совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 13:53 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
Зачем base64 то? Там же оверхеда много. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 13:58 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
Поди еще в текстовом поле. Которое еще свой оверхед добавляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 13:59 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
HettПоди еще в текстовом поле. Которое еще свой оверхед добавляет. Ясен пень, в текстовом. Вобщем, претензий никаких не было. Зато мне как удобно... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:01 |
|
Хранение картинок и их названий PHP
|
|||
---|---|---|---|
#18+
ПС. Я в ПХП иногда ярлычки так делаю. Конвертирую все в бейс64, а потом <img src="image.php?img=1" />. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 18:06 |
|
|
start [/forum/topic.php?fid=23&msg=39720318&tid=1460127]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 452ms |
0 / 0 |