powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / blob в byte
25 сообщений из 34, страница 1 из 2
blob в byte
    #39747581
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день! вопрос такой:
имею в БД Оракл поле blob, которое содержит уже данные закодированные в base64.
мне его нужно взять и положить в поле типа byte[]
но при этом брать его нужно в первозданном виде.
когда я делаю так:
Код: c#
1.
2.
Byte[] Bytepar; 
Bytepar = (Byte[])reader.GetOracleLob(reader.GetOrdinal("Doc_b64")).Value;


в результате получаю base64 поверх base64)

если я делаю
Код: c#
1.
string mys= System.Text.ASCIIEncoding.ASCII.GetString((Byte[])reader.GetOracleLob(reader.GetOrdinal("Doc_b64"))).Value;


Код: c#
1.
string mys= System.Text.ASCIIEncoding.ASCII.GetString(Bytepar);


то получаю исходную строку
Код: c#
1.
string mys= reader.GetOracleValue(reader.GetOrdinal("Doc_b64")).ToString();


получаю в значении mys - ' System.Data.OracleClient.OracleLob '
если читаю потоком, то получаю массив состоящий из последовательности ' System.Data.OracleClient.OracleLob '

т.е. мне надо взять тот текст, сказать что он уже есть byte[] без преобразований.

Прошу подсказать как быть.
...
Рейтинг: 0 / 0
blob в byte
    #39747621
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK,
Какой драйвер и версия?
...
Рейтинг: 0 / 0
blob в byte
    #39747622
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

using System.Data.OracleClient;
9 oracle
...
Рейтинг: 0 / 0
blob в byte
    #39747677
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANKполе blob, которое содержит уже данные закодированные в base64.
мне его нужно взять и положить в поле типа byte[]
но при этом брать его нужно в первозданном виде.
Непонятно что нужно. base64 - это строка, в которой закодированы какие-то бинарные данные, т.е., если нужно получить/раскодировать эти бинарные данные - используйте Convert.FromBase64String(String) https://docs.microsoft.com/en-us/dotnet/api/system.convert.frombase64string?view=netframework-4.7.2
...
Рейтинг: 0 / 0
blob в byte
    #39747696
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK,
По хорошему, уже в оракле в блоб данные должны быть в первозданном виде.
Зачем кодировали непонятно.
...
Рейтинг: 0 / 0
blob в byte
    #39747812
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Я разобрался. в части декодирования , я тоже понял. в Целом считывание и запись оказывается ведется правильно, т.е. то что записано я вижу в свойствах объекта, который использую дальше.
НО
в момент передачи Объекта, у которого есть свойство с моим полем(base64) данные совпадают, а на выходе запроса я вижу данные которые еще раз были закодированы base64, и чтобы получить исходные данные из переданных нужно 2 раза их декодировать.

тип данных объекта - byte[], тип данных при сериализации base64binary. Может быть что сам объект кодирует переданные в него данные?
...
Рейтинг: 0 / 0
blob в byte
    #39747831
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HANK,
Еще раз.
В оракле есть для двоичных блоб и для текстовых clob.
Т. Е. Base64 это текст и подходит другое поле.
2. Ручная сериализация зачем? Рукописный ОРМ?
3. Сериализовать классы можно в бинарном виде без base64.
...
Рейтинг: 0 / 0
blob в byte
    #39747902
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Base64 вообще имеет смысл хранить данные не очень большого объёма. Типа ключей шифрования, тумбочек картинок, прочую мелочевку.
...
Рейтинг: 0 / 0
blob в byte
    #39747915
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Я начал использовать при передаче по http, аттача в мыле и xml data.
...
Рейтинг: 0 / 0
blob в byte
    #39747955
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Roman Mejtes,
Я начал использовать при передаче по http, аттача в мыле и xml data.
а в http накойхер?
...
Рейтинг: 0 / 0
blob в byte
    #39747963
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123Roman Mejtes,
Я начал использовать при передаче по http, аттача в мыле и xml data.
а в http накойхер?протокол текстовый. Как данные бинарные передать?
...
Рейтинг: 0 / 0
blob в byte
    #39747967
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

https://ru.m.wikipedia.org/wiki/Base64
Раздел про веб
...
Рейтинг: 0 / 0
blob в byte
    #39747994
HANK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
все понятно, я передаю эти сведения во внешний сервис, формат данных представляется поставщиком сервиса.
сейчас коллеги внешнего сервиса разбираются.

Спасибо за ответы!
...
Рейтинг: 0 / 0
blob в byte
    #39748130
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Изопропилпропущено...

а в http накойхер?протокол текстовый. Как данные бинарные передать?
Бинарный протокол - изучай матчасть
...
Рейтинг: 0 / 0
blob в byte
    #39748135
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123пропущено...
протокол текстовый. Как данные бинарные передать?
Бинарный протокол - изучай матчастьа ссылка где?
Типа сам ищи?))
...
Рейтинг: 0 / 0
blob в byte
    #39748228
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

https://tools.ietf.org/html/rfc2068#section-2.2
https://tools.ietf.org/html/rfc2068#section-7.2

OCTET = <any 8-bit sequence of data>
entity-body = *OCTET
...
Рейтинг: 0 / 0
blob в byte
    #39748262
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
Примеры двоичных протоколов: RTP, TCP, IP.
Примеры текстовых протоколов: SMTP, HTTP, SIP.
https://stackoverflow.com/questions/2645009/binary-protocols-v-text-protocols
Binary protocol versus text protocol isn't really about how binary blobs are encoded. The difference is really whether the protocol is oriented around data structures or around text strings. Let me give an example: HTTP. HTTP is a text protocol, even though when it sends a jpeg image, it just sends the raw bytes, not a text encoding of them.

But what makes HTTP a text protocol is that the exchange to get the jpg looks like this:

Request:

GET /files/image.jpg HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.01 [en] (Win95; I)
Host: hal.etc.com.au
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Response:

HTTP/1.1 200 OK
Date: Mon, 19 Jan 1998 03:52:51 GMT
Server: Apache/1.2.4
Last-Modified: Wed, 08 Oct 1997 04:15:24 GMT
ETag: "61a85-17c3-343b08dc"
Content-Length: 60830
Accept-Ranges: bytes
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: image/jpeg

<binary data goes here>

Отличия от HTTP 1.1
Протокол HTTP/2 является бинарным.
https://ru.wikipedia.org/wiki/HTTP/2
...
Рейтинг: 0 / 0
blob в byte
    #39748274
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

ты серьёзно полагаешь, что двоичные данные по HTTP/1.1 не передаются?
...
Рейтинг: 0 / 0
blob в byte
    #39748307
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123,

ты серьёзно полагаешь, что двоичные данные по HTTP/1.1 не передаются?
Выше синим выделено, что передаются. Но от этой фичи протокол не перестает быть текстовым.
Если в ворде можно таблички, то он не перестал быть текстовым процессором брат.
Content-Type: image/jpeg
<binary data goes here>
...
Рейтинг: 0 / 0
blob в byte
    #39748318
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

а почему тебя беспокоит
Petro123протокол текстовый. Как данные бинарные передать?
...
Рейтинг: 0 / 0
blob в byte
    #39748339
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилPetro123,

а почему тебя беспокоит
Petro123протокол текстовый. Как данные бинарные передать?
Ну ты же сам начал спорить не с тем что jpeg нельзя передавать, а с тем что протокол бинарный.
Согласись.
А юз кейс по передачи - полно:
- в урл передать
- в заголовке передать
- в надпротоколе SOAP передать.
--
везде требуется конвертация. В вики примеры.
Удачи!
...
Рейтинг: 0 / 0
blob в byte
    #39748357
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123везде требуется конвертация
неправда.

для двоичных данных никакая конвертация не нужна
в простейшем случае передаётся Content-Length байтов
для Transfer-Encoding: chunked - размер каждого чанка

случай multipart/form-data - разжёван в википедии https://ru.wikipedia.org/wiki/Multipart/form-data
(если RFC сложен для понимания)

PS ещё скажи, что данные Transfer-Encoding: gzip в текстовом виде передаются
...
Рейтинг: 0 / 0
blob в byte
    #39748359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
слово "везде" обозначает - для данных юз кейсов:
авторА юз кейс по передачи - полно:
- в урл передать
- в заголовке передать
- в надпротоколе SOAP передать.
Не ищи черную кошку в темной комнате. Её там нет.
...
Рейтинг: 0 / 0
blob в byte
    #39748365
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилслучай multipart/form-data
ты дал метод где НЕ используется кодирование Base64.
Замечательно.
Спасибо.
Надеюсь я выше дал юз кейсы где Base64 используется.
...
Рейтинг: 0 / 0
blob в byte
    #39748367
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123слово "везде" обозначает - для данных юз кейсов:
основной юзкеис забыл упомянуть - HTTP POST
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / blob в byte
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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