Веб-сервис: поле BLOB - PullRequest
1 голос
/ 11 июня 2009

При получении данных из базы данных Oracle, содержащей поля BLOB (файлы .doc и т. Д.), Нужно ли мне что-то делать, чтобы отправить их через веб-службы?

Она отправляется как строка, и я пытаюсь преобразовать строку в массив байтов и записать ее в файл для воссоздания на стороне клиента файла .doc.

Какой правильный подход?

Ответы [ 2 ]

2 голосов
/ 11 июня 2009

Это не ясно из вопроса, но звучит так, как будто у вас есть данные из базы данных, и теперь вам нужно представить их в веб-сервисе. С точки зрения SOAP и т. Д., Это может быть так же просто, как вернуть byte[] или выставить byte[] в DTO. Если поле большое, вы можете рассмотреть MTOM (WSE3) и / или веб-сжатие.

Итак: как Oracle предоставляет вам BLOB? Если это не byte[], возможно, это что-то вроде класса Binary LINQ, который обеспечивает инкапсулированный доступ к данным (ToArray() в данном случае). Если он выставляет string, я бы предположил , что он закодирован в base-64; Вы можете попробовать запустить Convert.FromBase64String.

1 голос
/ 15 июня 2009

Вам необходимо base64 кодировать поток байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...