|
|
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Добрых суток, Пару вопросов про хранение изображения в БД. Первый: как хранить? ну т.е. просто потоком загружать в блоб поле или сначала лучше кодировать в BASE64, а потом загружать в блоб поле? Второй: как загружать и как читать рисунок в.из БД? (пробовал в гугле найти, но то ли голова не думает в 4 часа ночи, то ли я торможу) Во всяком случае буду рад простому рабочему примеру. Проловал через TstreamMemory загнать и прочитать, не выходит аленький цветочек. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2020, 23:56 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23Проловал через TstreamMemory Потому что тут нужен TBlobStream. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 00:18 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23 или сначала лучше кодировать в BASE64 Лучше, конечно, закодировать: база бОльшего объема выглядит солиднее, да и процессор воздух согреет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 00:28 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Почему-то очень редко задаётся встречный вопрос. "А вы уверены что ваши изображения нужно хранить именно в базе?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:00 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
northener Почему-то очень редко задаётся встречный вопрос. "А вы уверены что ваши изображения нужно хранить именно в базе?" Серьезных причин хранить "не в базе" не осталось. Ну, кроме желания знатно потрахаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 02:42 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
northener Почему-то очень редко задаётся встречный вопрос. "А вы уверены что ваши изображения нужно хранить именно в базе?" Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 06:11 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
еще интересный момент. Где то мельком на форумах видел , что можно считать и записать только bmp и jpg а вот c png будут проблемы, там по другому надо считывать - записывать. (Поэтому я и думаю про BASE64) Насколько это утверждение верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 06:17 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23 еще интересный момент. Где то мельком на форумах видел , что можно считать и записать только bmp и jpg а вот c png будут проблемы, там по другому надо считывать - записывать. (Поэтому я и думаю про BASE64) Насколько это утверждение верно? А вот с png+BASE64 проблем не будет :) В блобах Вы храните последовательность байт. Что там хранится базе глубоко фиолетово: хоть bmp, хоть png, хоть текстовое описание картинки. Это имеет значение уже тогда, когда ты уже данные из блоба вытащил и сам решаешь: что с ними делать: то ли отправить на принтер, то ли сохранить в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 07:30 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23, Где собрались хранить, о какой субд речь? В целом идея дурацкая, обычно хранят ссыкли на файлы и хэши, потому что картинок будет очень много их придётся куда-то перетаскивать, перезаливать и т.п. С базой это всё делать будет не удобно. Но вы, конечно, смотрите на проблему в контексте дельфи разработки, а не про какое-то там удобно/неудобно поддерживать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 07:31 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23 еще интересный момент. Где то мельком на форумах видел , что можно считать и записать только bmp и jpg а вот c png будут проблемы, там по другому надо считывать - записывать. Насколько это утверждение верно? У поля с блобом есть подтипы. Создай поле для блоба двоичного и пиши туда любые файлы. FIL23 (Поэтому я и думаю про BASE64) Забей. Это не для этих случаев. "Это вам не это". Ну и наверняка могут быть тонкости в СУБД и компонентах доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 08:09 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23 Проловал через TstreamMemory загнать и прочитать, не выходит аленький цветочек. Как пробовал? Там же всё проще некуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 09:04 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Подумай о хранении файлов на диске, а не в базе. 1. Хранить в базе относительные ссылки на файлы. 2. Не хранить даже ссылки. Просто папки на диске именовать как ID объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 09:11 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
X11 Подумай о хранении файлов на диске, а не в базе. 1. Хранить в базе относительные ссылки на файлы. 2. Не хранить даже ссылки. Просто папки на диске именовать как ID объекта. По хорошему и диск не лучшее решение. Более дальновидно написать сервис, который умеет записывать и загружать файл в любой источник. Будь то облако, ftp, сетевая шара и отдельная база. А у каждого файла прописывать источник и пусть сервис (модуль на стороне клиента) с ним разбирается. Плюсом будет возможность управлять местом хранения по различным признакам: мелкие или не важные файлы можно хранить в базе или в файлопомойке, важные документы - на фтп или в облаке и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 10:04 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Серьезных причин хранить "не в базе" не осталось. Ну, кроме желания знатно потрахаться. Стоимость — серьезная причина? Если изображений много, то хранить их на диске намного "дешевле", чем в базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 10:24 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
ты ведь уже спрашивал ? Неужели так и не уразумел? FIL23 пробовал в гугле найти ну ты даешь http://www.ibase.ru/ibx/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 10:26 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Обычно стоимость владения ресурсами БД во много раз дороже ресурсов к примеру сети хранения или какого нибудь S3. Кроме того исторически БД создавалась для транзакционных действий над маленькими атомарными полями типа varchar, numeric и никак не оптимизировалась для хранения например картинок *jpg фотокачества которые могут быть в среднем по 30 Мб. База будет исполнять большое число ненужных действий чтобы просто отдать тебе картинку. Кроме того загружая ценный канал который у тебя задействован для табличек. Вобщем если систему сильно масштабировать (увеличивать число баз и хранилищ картинок) то естественным возникнет архитектурный вопрос чтобы вышвырнуть из БД вообще все блобы над которыми нет транзакций кроме просто создания их 1 единственный раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 10:29 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Док ты ведь уже спрашивал ? Неужели "А поговорить" - (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 11:31 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
FIL23 northener Почему-то очень редко задаётся встречный вопрос. "А вы уверены что ваши изображения нужно хранить именно в базе?" Да. Хранить в БД картинки - ЗЛО Только если это обосновано подтверждением корректности отображения конкретной картинки Например: Если к файловому хранилищу имеют доступ третьи лица и могут подменить файл. Но можно хранить в БД CRC и проверять при загрузке файла. Если не совпадает или удалили, то орать - "НАС ВЗЛОМАЛИ!!" А так стандартно: Поднять http сервер. и хранить картинки на нем в файловой системе. В БД хранить только ссылку и CRC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 12:46 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
wadman, это уже не важно, храни на диске, а к папке с фотками подключи облако с их родной программой синхронизации, которое будет синхронизировать фотки на удаленных ПК, привязка к ID сохраняется... wadman Более дальновидно написать сервис их, облачная родная программа синхронизации с облаком и будет уже готовый написанный сервис ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 13:03 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
X11 это уже не важно, храни на диске, а к папке с фотками подключи облако с их родной программой синхронизации, которое будет синхронизировать фотки на удаленных ПК, привязка к ID сохраняется... К какому ИД? В виде имени файла? Если имел дело с облаками, то должен понимать выгоду от прямого обращения к нему, нежели в виде костыля через файловую систему. Из самых очевидных - версионность и история. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 13:20 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
wadman X11 это уже не важно, храни на диске, а к папке с фотками подключи облако с их родной программой синхронизации, которое будет синхронизировать фотки на удаленных ПК, привязка к ID сохраняется... К какому ИД? В виде имени файла? Если имел дело с облаками, то должен понимать выгоду от прямого обращения к нему, нежели в виде костыля через файловую систему. Из самых очевидных - версионность и история. ID генерировать при сохранении файла. Например - GUID в имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 13:34 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Нестандартное мышление wadman пропущено... К какому ИД? В виде имени файла? Если имел дело с облаками, то должен понимать выгоду от прямого обращения к нему, нежели в виде костыля через файловую систему. Из самых очевидных - версионность и история. ID генерировать при сохранении файла. Например - GUID в имени. На всё готовы лишь-бы делом не заниматься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 13:36 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
wadman Нестандартное мышление пропущено... ID генерировать при сохранении файла. Например - GUID в имени. На всё готовы лишь-бы делом не заниматься. Ага. Еще срок действия файла указывать. И события, по его истечению. Вопрос был в том - как хранить бинарник в БД? Если толстый канал и SSD диски на базе, то можно хоть 8к видео стримить. Но тут вопрос в оптимальном решении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 14:46 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Ничего можно и надо генерировать. Пусть имена файлов будут исходные. А вот имя папки - это ID объекта. Как вариант, можно использовать не ID объекта, а ввести дополнительное поле. Например, на случай переноса данных из одной базы в другу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2020, 18:59 |
|
||
|
изображение в базу и из базы
|
|||
|---|---|---|---|
|
#18+
Не понятный дискус, я спросил как лучше хранить изображение в БД. (а не где хранить) на счет конвертации в BASE64 что будет место занимать и проц греть - согласен, поэтому отпадает. Возвращаемся к теме . возможно это и есть конечное решение.. Значит записываю я информацию в БД так (это просто пример). (может кто предложит поизящней код). Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. В БД данные попадают. Теперь извлечение данных, выгружаем данные из бд и определяем что это jpeg или bpm , после выводим изображение в image Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2020, 00:37 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39961939&tid=2038279]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
148ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 467ms |

| 0 / 0 |
