|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Че-та поиском не нашел. Можно как-то откастовать блоб, чтобы получить на клиента несколько первых байтов? ================= Док. Win10 Ultim x64/Deb 10 amd64/Darwin Cocoa: FB 3.0.7.33374, Lazarus 2.3.0(trunk); FPC 3.3.1(trunk) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:04 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
в октет и сабстрингом Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:07 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Док, Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:08 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
кстати, а БЛОБ-то какой? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:08 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Мимопроходящий, Да, правильнее AS VARCHAR(3) CHARACTER SET OCTETS, но хз как там клиент (умеет ли) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:10 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Мимопроходящий кстати, а БЛОБ-то какой? ты, как всегда, краток :) Да, забыл указать, блоб бинарный Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:16 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
YuRock Да, правильнее AS VARCHAR(3) CHARACTER SET OCTETS, но хз как там клиент (умеет ли) Код: sql 1. 2. 3. 4.
Спасибо, все робит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:35 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Док Спасибо, все робит :) Тут похоже на определение типа картинки/документа, дак я-бы лучше это делал в отдельное поле и перед отправкой файла. Да еще и на клиенте, там возможностей поболе будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:38 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
wadman Док Спасибо, все робит :) Тут похоже на определение типа картинки/документа, дак я-бы лучше это делал в отдельное поле и перед отправкой файла. Да еще и на клиенте, там возможностей поболе будет. все верно, только с той разницей, что хранение расширения и способ загрузки картинки в визуальные компоненты уже реализованы. Вот только пока не определился, где дешевле по трудозатратам: анализировать по расширению или по байтам (последний вариант мне кажется изящнее :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 18:02 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
анализируй перед загрузкой БЛОБ-а в базу. на клиенте. и добавь в таблицу поле - идентификатор (тип) выявленной сигнатуры. по-хорошему, ещё конечно надо бы создать доп.таблицу - справочник типов. но это не обязательно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 18:16 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Мимопроходящийи добавь в таблицу поле - идентификатор (тип) выявленной сигнатуры. В зависимости от назначения этот идентификатор может быть имя класса-обработчика данного изображения или MIME-название для скармливания системе/браузеру/и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 18:35 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Док YuRock Да, правильнее AS VARCHAR(3) CHARACTER SET OCTETS, но хз как там клиент (умеет ли) Код: sql 1. 2. 3. 4.
Спасибо, все робит :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 20:53 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Не все типы картинок имеют однозначную сигнатуру, например, bmp не имеет. Поэтому обычно вьюеры ориентируются на параллельно с файлом приходящий content-type , например, image/jpeg , или в крайнем случае на расширение. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 21:10 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
shalamyansky Не все типы картинок имеют однозначную сигнатуру, например, bmp не имеет. Из Вики: BITMAPFILEHEADER — 14-байтная структура, которая располагается в самом начале файла. 00 2 bfType WORD Отметка для отличия формата от других (сигнатура формата). Может содержать единственное значение 4D42/424D (little-endian/big-endian). ... 4D42/424D - это буквы MB или BM в ANSI кодировке. Ради любопытства глянул пару картинок BMP - везде есть буквы BM. Хотя, всякое бывает... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 21:33 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
d7i shalamyansky Не все типы картинок имеют однозначную сигнатуру, например, bmp не имеет. Из Вики: BITMAPFILEHEADER — 14-байтная структура, которая располагается в самом начале файла. 00 2 bfType WORD Отметка для отличия формата от других (сигнатура формата). Может содержать единственное значение 4D42/424D (little-endian/big-endian). ... 4D42/424D - это буквы MB или BM в ANSI кодировке. Ради любопытства глянул пару картинок BMP - везде есть буквы BM. Хотя, всякое бывает...У меня с bmp, gif, jpeg, png не было проблем никогда при загрузке (определении типа картинки) по мервым байтам. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 21:48 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
YuRock У меня с bmp, gif, jpeg, png не было проблем никогда при загрузке (определении типа картинки) по мервым байтам. Да, эти форматы имеют адекватные заголовки с определенной сигнатурой (флагом). Так что "флаг в руки"... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 23:23 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Мимопроходящий анализируй перед загрузкой БЛОБ-а в базу. на клиенте. хорошая мысль. Особенно, если картинке до этого намеренно изменили расширение. В наст. момент в базу кладется расширение, указанное в имени файла. Мне подумалось, что поле с расширением файла можно будет похерить, если достаточно будет проанализировать первые 3-4 байта блоба shalamyansky Не все типы картинок имеют однозначную сигнатуру, например, bmp не имеет. а вики говорит, что это не так 0x4d42/0x424d YuRock У меня с bmp, gif, jpeg, png не было проблем никогда при загрузке (определении типа картинки) по мервым байтам. в Лазаре по дефолту у TOpenPictureDialog проперть Filter выглядит примерно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Тут поневоле задумаешься, а сколько форматов будет достаточно для кроссплаформы? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 23:41 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Док> если картинке до этого намеренно изменили расширение. Расширение вообще не имеет значения. Его может не быть или быть "неправильным". Файл 'зелёный.крокодил' может быть BMP, JPG, TXT, EXE или файлом базы данных. > В наст. момент в базу кладется расширение, указанное в имени файла. > Мне подумалось, что поле с расширением файла можно будет похерить, Не можно, а нужно. Я в своё время делал примерно, как МП описал - был перечень "поддерживаемых форматов", один из которых "выбирался" на клиенте. В БД ничего не анализировалось, только хранилось. > Тут поневоле задумаешься, а сколько форматов > будет достаточно для кроссплаформы? :) Это решать тебе (исходя из логики ПО), а не кросс-платформе. :) IIRC, мне в своё время для графики хватило BMP/PNG/JPG, хотя по идее какой-нибудь TIFF не помешал бы для многостраничности. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:01 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Расширение вообще не имеет значения. Его может не быть или быть "неправильным". Этим много кто страдает, когда вместо "нормального" расширения приходит webp (или как его там). Не раз сталкивался. Ирфаном открываю, а он предлагает его переименовать с настоящим расширением. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 11:55 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
На самом деле Imageformat-ов очень много. Вот, к примеру, XnViewMP поддерживает 500 форматов: https://www.xnview.com/en/image_formats/ Для практической работы с БД, я думаю, хватит и десятка самых распостраненных. И, конечно, самый надежный способ анализировать по сигнатуре в файле. Что ещё тут обсуждать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 12:30 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
06.10.2021 12:30, d7i пишет: > Вот, к примеру, XnViewMP поддерживает 500 форматов: > https://www.xnview.com/en/image_formats/ у них там и CSV среди графических чалится ;) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 12:33 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
shalamyansky Не все типы картинок имеют однозначную сигнатуру, например, bmp не имеет. Поэтому обычно вьюеры ориентируются на параллельно с файлом приходящий content-type , например, image/jpeg , или в крайнем случае на расширение. Виноват, ляпнул по старой памяти, не проверив. Bmp имеет сигнатуру ВМ. Наверное, я ico имел в виду. Там нули в начале, не очень надежный способ идентификации типа. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 16:12 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Хранить в отдельных полях полезно и content-type, и размер в байтах, и размер в пикселах, и даже хеш файла. Это несколько избыточно, зато потом поиск эффективно можно организовать. Например, ограничить выборку только маленькими (меньше 1MB) картинками типа gif. Даже если сейчас нет такой нужды, когда-нибудь обязательно возникнет. А при наличии хеша можно быстро найти по известной картинке (и более ничего) соответствующую запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 16:24 |
|
Как получить байты из блоба?
|
|||
---|---|---|---|
#18+
Кстати, вот весьма полезная задача - найти дубли картинок. Шарашить квадратичным поиском сравнения блобов тяжеловато будет, особенно на емких базах. А если есть хеш и индекс по нему - милое дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 16:50 |
|
|
start [/forum/topic.php?fid=40&msg=40102256&tid=1559923]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 254ms |
total: | 428ms |
0 / 0 |