powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Хранение картинок и их названий PHP
13 сообщений из 13, страница 1 из 1
Хранение картинок и их названий PHP
    #39720240
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Подскажите такой вопрос?

Вот к примеру загрузил я через обработчик 3 картинки к товарам, сами физические файлы ушли в папку к примеру upload.
А как положить лучше названия картинок в базу? Кто то хранит вообще картинки в самой базе, кто то в структуре по датам или месяцам когда их много чтобы ускорить работу.

Вопрос к знатокам. Как лучше загружать и хранить несколько изображений/названий для сайта на PHP и MySQL

Спасибо за ответы, поделитесь опытом
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39720248
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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_блока (где отображать этот файл), порядок_сортировки.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39720318
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Спасибо за совет. Кто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке?
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39720326
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше развернуть кластер swift!
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39720331
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett, А подробнее можно?
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39720346
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotКто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке?Смотря какие критерии правильности.

В плюсы можно записать довольно полное хранение контента сайта. И дерево директорий строить не нужно. Да, бывает, и шаблоны тоже хранят в базе и даже скрипты. В общем то, способ довольно тривиальный, но не слишком распространенный.

В минусах у такого способа хранения файлов, пожалуй, невозможность отдачи файлов непосредственно фронтендом - кто-то должен подключиться к СУБД, сделать запрос и получить данные, отдать клиенту нужное поле.

Безотносительно правильности: в папке хранить чуть-чуть проще. Приблизительно на пару скриптов :)
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721126
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleangrybotКто то мне говорил что файлы можно хранить физически в база данных, это правильно или же все же проще на хосте в папке?Смотря какие критерии правильности.

В плюсы можно записать довольно полное хранение контента сайта. И дерево директорий строить не нужно. Да, бывает, и шаблоны тоже хранят в базе и даже скрипты. В общем то, способ довольно тривиальный, но не слишком распространенный.

В минусах у такого способа хранения файлов, пожалуй, невозможность отдачи файлов непосредственно фронтендом - кто-то должен подключиться к СУБД, сделать запрос и получить данные, отдать клиенту нужное поле.

Безотносительно правильности: в папке хранить чуть-чуть проще. Приблизительно на пару скриптов :)
Понимаю, что много возражений, но когда как-то писал на аспнет, очень удобно хранил картинки в базе в виде базе64. Очень рекомендую. Офигенно удобно. Тем более, что "битых" ссылок не бывает, как и "левых" картинок. Называется ссылочная целостность.

ПС. На пхп времени нет всё красиво делать, поэтому - в каталоге.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721443
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПонимаю, что много возражений, но когда как-то писал на аспнет, очень удобно хранил картинки в базе в виде базе64. Очень рекомендую. Офигенно удобно. Тем более, что "битых" ссылок не бывает, как и "левых" картинок. Называется ссылочная целостность.


не выдерживает нагрузки от слова совсем.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721446
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем base64 то? Там же оверхеда много.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721448
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поди еще в текстовом поле. Которое еще свой оверхед добавляет.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721600
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettПоди еще в текстовом поле. Которое еще свой оверхед добавляет.
Ясен пень, в текстовом. Вобщем, претензий никаких не было. Зато мне как удобно...
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721603
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. Я в ПХП иногда ярлычки так делаю. Конвертирую все в бейс64, а потом <img src="image.php?img=1" />.
...
Рейтинг: 0 / 0
Хранение картинок и их названий PHP
    #39721691
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне айпи адрес то стремно текстом хранить чет :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Хранение картинок и их названий PHP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]