Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62

Загрузка фото в MySQL

17.12.2016, 02:43. Показов 3191. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи!

Пишу на Delphi 2010, компоненты доступа к БД - ZEOS. Проблема с добавлением файла jpg в базу данных. При размере примерно до 1 мб, файл успешно загружается, а вот более 1 мб - оповещает об ошибке: SQL error: "MySQL server has gone away"

Кусок из процедуры:

Delphi
1
2
3
4
5
  DM.qrySQL.Close;
  DM.qrySQL.SQL.Text := 'update photo set photofile = :photofile where us_id = :us_id';
  DM.qrySQL.ParamByName('photofile').LoadFromFile(FileName, ftBlob);
  DM.qrySQL.ParamByName('us_id').Value := UsId;
  DM.qrySQL.ExecSQL;
FileName - путь к файлу. Тип поля в MySQL - BLOB, пробовал также LONGBLOB. Ситуация не меняется. Пробовал также вместо ftBlob, указывать ftGraphic. Подскажите, в чем проблема?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2016, 02:43
Ответы с готовыми решениями:

Загрузка фото с DBImage
Доброго времени суток. Столкнулся с нерешаемой для моего скудоумия проблемой. Есть form2 где в dbgrib хранится инфа о сотрудниках. При...

Delphi. Загрузка фото в поле BLOB (IBQuery)
Всем привет, мучаюсь вторую неделю, решила просить помощи тут. В общем, есть Удаленная БД, таблицы сделаны в IBConsol. Есть ФИО то да се,...

Загрузка фото из MySql
нужно загрузить из базы картину.... вот так я загружаю в mysql картину : Dim data As IDataObject Dim bmap As Bitmap ...

14
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
17.12.2016, 08:21
а сервер не на хостинге случайно?
0
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62
17.12.2016, 18:45  [ТС]
Данный пример тестирую вообще локально.

Добавлено через 8 часов 29 минут
Неужели никто не сталкивался с подобной проблемой???
0
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62
31.12.2016, 00:40  [ТС]
В общем проблема была в том, что в глобальной переменной на сервере mysql было значение, позволяющее принимать данные в размере не более 1 мб. Поменял его, для моего случая, на 30мб и всё стало загружаться. Значение указывается в килобайтах.

T-SQL
1
 SET GLOBAL MAX_ALLOWED_PACKET=31457280
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
01.01.2017, 03:29
Цитата Сообщение от Евгений Стронг Посмотреть сообщение
Проблема с добавлением файла jpg в базу данных. При размере примерно до 1 мб, файл успешно загружается, а вот более 1 мб
Вот никак не понимаю настоятельную необходимость хранения самого документа (в данном случае фото) внутри самой БД.
Почему бы не хранить в БД ссылку на файл документа?
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
04.01.2017, 22:58
Цитата Сообщение от northener Посмотреть сообщение
Почему бы не хранить в БД ссылку на файл документа?
Потому что это документь кто то удалить или случайно перекинить на другом месте и БД останится только ссылк ! MySQL можно хранить (самого документа)! Но там надо прочитать про Blob
TINYBLOB - может хранить до 255 байт
BLOB - может хранить до 64 килобайт информации
MEDIUMBLOB - до 16 мегабайт
LONGBLOB - до 4 гигабайт
http://site.softmaker.kz/php/d... rint=print
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
05.01.2017, 02:08
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Потому что это документь кто то удалить или случайно перекинить на другом месте и БД останится только ссылк !
Испортить можно всё что угодно. Так что это не довод.
0
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62
05.01.2017, 02:22  [ТС]
Да к чему эти проблемы с хранением файлов в отдельной директории, если база данных предоставляет возможность хранения файла? Для этого специально создан тип поля. Создается отдельная таблица с блоб полем и идентификатором записи и прекрасно всё подтягивается одним запросом, без лишних проблем.
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
05.01.2017, 02:27
Цитата Сообщение от Евгений Стронг Посмотреть сообщение
Да к чему эти проблемы с хранением файлов в отдельной директории
Порушится база - сгинут все фотки.
0
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62
05.01.2017, 03:21  [ТС]
Для этого есть бэкап. А если и на то пошло, то рухнув база - директория с фотографиями уже будет явно не нужна.
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
05.01.2017, 12:44
Цитата Сообщение от northener Посмотреть сообщение
Испортить можно всё что угодно. Так что это не довод.
Если сервер на отделни компьютере, то "испортить" не так просто как на локальный компьютере
Цитата Сообщение от Евгений Стронг Посмотреть сообщение
Для этого специально создан тип поля. Создается отдельная таблица с блоб полем и идентификатором записи
Да все правильно.! Только вы почитайте про "блоб" хорошо . как я помню "индексировать поля "блоб" " нельзя .
0
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 62
05.01.2017, 15:32  [ТС]
У меня таблица с пользователями, а вторая таблица с их фото. Там всего три поля - идентификатор, сама фотка и id юзера из первой таблицы, по которому и происходит поиск. Оно и проиндексированно.
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
07.01.2017, 01:54
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Если сервер на отделни компьютере, то "испортить" не так просто как на локальный компьютере
Если это "просто" отдельный компьютер, то так же просто.
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
07.01.2017, 02:48
Цитата Сообщение от northener Посмотреть сообщение
Если это "просто" отдельный компьютер, то так же просто.
Я с вами спорить не собираюсь , и доказивать нечего не буду...!
-- Просто скажу что более надежный вариант хранить (блоб файл) в БД на сервере , имею в виду (отдельный компьютере-поднять сервер )
-- Делать бекап на пример в сутке (один раз) на пример так https://habrahabr.ru/post/205964/
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
07.01.2017, 03:16
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Я с вами спорить не собираюсь
Я тоже не собираюсь спорить по пустякам.
Скажу только одно. Если речь идет о сервере БД, то это не просто "отдельный компьютер".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.01.2017, 03:16
Помогаю со студенческими работами здесь

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

Загрузка фото в БД
Есть БД в Accsese как из c++ в нее загрузить фото. БД подключена через Adotable.

Загрузка фото
Здравствуйте,Я решила заняться продажей товара(а это работа с большим количеством фото) и столкнулась с непростой проблемой.Скажите...

Загрузка фото в ВК
не срабатывает выдается Где может быть ошибка Array ( => 856028 => => 138423777 => 7a788ca8bee1788af7208b67e424d04d =>...

Загрузка фото по айпи
Помогите пожалуйста, может кто знает как по айпи загрузить фото в проект. например, из инстаграма


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru