Как хранить картинку в БД?
Подскажите пожалуйста как хранить картинку в БД MySQL? И как ее отправлять в БД и вытаскивать оттуда. Может знаете какие туториалы по данной тематике. Создаю web-приложение для ресторана. Картинки это будут фотографии блюд. Back буду делать на Node.js.
Ответы (3 шт):
Мой совет - никак :) Лучше всего хранить в БД текстовые данные и ссылки на картинки и прочие файлы. Для их хранения лучше всего воспользоваться другим решением. Например загружать их на Amazon S3.
Не самая гениальная идея, но вам нужно использовать тип
- TINYBLOB 255 bytes = 0.000255 Mb
- BLOB 65535 bytes = 0.0655 Mb
- MEDIUMBLOB 16777215 bytes = 16.78 Mb
- LONGBLOB 4294967295 bytes = 4294.97 Mb = 4.295 Gb
для полей с данными файлов
Вообще картинки в БД лучше не хранить. Но бывают исключения - иконки, и то, если они мало весят... Ну и от подхода написания проекта зависит. Один из лучших способов, это хранить иконки/картинки в формате base64. Т.е., если это иконка какого-то юзера, у него будет примерно вот така структура:
Login: string,
Email: string,
Password: string,
Active: bool,
IconBase64: string
Соответственно, в БД тип колонки так же будет string. Как преобразовать картинку в base64 может быть эта статья или подобные по запросу