Как преобразовать данные byte[] или blob в понятный файл. csv,. xlsx или. pdf в зависимости от типа содержимого.
Требование похоже на извлечение данных из базы данных oracle, которая будет находиться в BLOB-типе данных. Мне нужно загрузить данные blob-объекта на основе типа контента, например, если это файл .csv,. xlsx или .pdf в удобочитаемом виде.
Пожалуйста, помогите мне выбраться отсюда.
Что я уже пробовал:
//в то время как (читатель.Читать())
//{
// //байт[] стрим = (байт[])читатель["сведения"];
// string fileName = (string)reader ["имя файла"];
// string contentType = (string)reader ["FILE_TYPE"];
// //Функция WriteFile(трансляция, именем, значение contentType, свойство HttpContext.Тока.Ответ);
// FileStream fs; / / записывает BLOB-объект в файл (*. bmp).
// BinaryWriter bw; / / передает BLOB-объект в объект FileStream.
// int bufferSize = 100; / / размер буфера BLOB-объектов.
// байт[] outbyte = новый байт[параметр bufferSize]; // двоичный байт[] буфера, которые должны быть заполнены метод getbytes.
// long retval; / / байты, возвращенные из GetBytes.
// long startIndex = 0; / / начальная позиция в выводе BLOB-объекта.
// / / Создайте файл для хранения выходных данных.
// fs = новый файловый поток (@"C:\Users\V.Manjunatha\Desktop\Packages\" + имя файла,
// Содержит filemode.OpenOrCreate, FileAccess.Писать);
// bw = новый BinaryWriter(fs);
// / / Сбросьте начальный байт для нового BLOB-объекта.
// startIndex = 0;
// / / Считайте байты в outbyte[] и сохраняйте количество возвращенных байтов.
// retval = читатель.GetBytes(1, startIndex, outbyte, 0, bufferSize);
// / / Продолжайте чтение и запись, пока есть байты за пределами размера буфера.
// while (retval == bufferSize)
// {
// bw. Write(outbyte);
// bw.Промывать();
// / / Переместите начальный индекс в конец последнего буфера и заполните его.
// startIndex += bufferSize;
// retval = читатель.GetBytes(1, startIndex, outbyte, 0, bufferSize);
// }
// / / Запишите оставшийся буфер.
// bw. Write(outbyte, 0, (int)retval);
// bw.Промывать();
// / / Закройте выходной файл.
// bw.Close();
// Ф.Рядом();
//}
Когда я использую этот код, файл. csv как
""½K®1ŽžÛ7à™l$" ~O OàÎà€ " cüææ?
"I_ÿãýÿÿÿþûþçßâßÒßòßý¿åïÿü§üý×êúgýïÿ-ç8þ - /ü“cš9·ôðŸHÿ þ”OHKr¤ÿF7äþ©2)Pgû"
6ÎËÜ'Q §ú—ÇÀÀ
Œ6ïjñ£@&iXPž3Bò Š Š9xrïåïÿ(KC'ïò'âÈ6€R[×βxy4[Μ Æ Æ
¤Я(¶†ëÇÒÈÓ:я{rþ¼"eŒ¿ÄOXÄòŽú?@ý/•õÎ#б'Èëéçùòùºžðˆ ќ¥çú"Å.1×õ CüÊqÿÒT
='nkò('4õ@gzZïc}'@*'rús *uuí†ÐË°) * ú
#Ф(¿¥±f½'jýÈ#k0òšé€44™русская£Fç“ܾ®/Îd(Ž:Òßhýûx(Ž¦-/–êHåþm:€ŒÃÑ“sýÊ#yÐãóz. ‘tý6G*
M5 ""€â1s÷V' ®q qÍ}2L×Ð!éz [[o©*Š Š
LžÍ—†Ó¾þÔ'×+Дж±л@¦3ºþÿfyéã [*#pÆÐl 23ŽéP`¦µþ&ЛТ;ó0¥¢@¡'ã¼€&ГТ;dQÀÜ~Щ¶xñ-"继õfÊŸPeÎØ›
4ч×*·¥|-9r¾ÿZgá#ïzû\л@в„KOÎ
4R ¿/βïpï? Á©8@ - ¶\AòäAX "éú ÍÍB"< 'â€g'I â âμú;@å°{ržÈM-Ö Ž Ž™UX_ ¡- /A A[Äáx"‰‰¾] Ÿ‰ / æMÆáŠ
Të Këë¦ * äìP¡Î%µ|Bçμ¤:ɽ-Øò¡KIw. 0®ô ô {â'$??: rýùý” ÷ + é'åìó ¡uùž¥›
"°t l©Nä4"
Ùs]о·ï1Xó
„•„~¢д–Ò&ЛТ;}ýÀ-•У4„дБ...¤х€|ÈÁø3]ŸÀIŸ@:R]IÖ4¦+я сыÎÓÀp¤úh»3ec¿#-®wäCÇÀ2&ЛТ;м@&амп;ähyµá3õvýöfcç`·å2ƒ$gª3í¥êg„ž3]þtöè\awƒ&ГТ;}ако—1&ЛТ;€м
)Ùàššåæq!m€UÀ†Õ”‹
"x@Ó™3±"çžt€üøEÐß·nåå=à1€Ø%ˆ
"-'âú ψ‡ À"
Yy2v
"9V[Ž}á'ÕÝ`
}àtv5öü°—9v ð ÐAs”
"'†"1zržà× - æoæùùzø'BÀú&0u'kó 1ÏÔ£!gÈìß@=€:RfË°‰Æ"eVÚÛ–1'ó5CŽU4'Ï%Çïýõ; Çbb2ë?®. î î F1äxÏð L L82ôøékk1yèc}ÉÏíe(2wÆÕx™¡½Œ 4 ¼A:\4¥2ÌÐ"
9irx:
;- À À
Œî_Êßœù{-!3"ãð¤2¡ñ4{Б» }–:'½‰!Да"
3ÝYRÙ
>ŸJÕ X Xzμý2æ^ž@€ € ÌfkÃ& cVl
который не читается.
BillWoodruff
Я смущен вашим вопросом. Если вы знаете, что такое формат данных (.pdf и т. д.), Не следует ли вам создать большой двоичный объект, сериализовав файл в двоичную форму, а затем сохранить его с помощью какого-нибудь связанного идентифицирующего тега, чтобы вы знали, что такое большой двоичный объект ?
Затем, когда вам нужно заново сконструировать файл, вы получаете тип blob-объекта, а затем получаете данные blob-объекта и передаете их соответствующему де-сериализатору.
Member 12597547
Да, у меня есть тип blob-объекта, как де-сериализовать его до соответствующего типа. Не могли бы вы предложить мне выйти
BillWoodruff
Существует множество инструментов для получения содержимого .csv или. xslx в некотором представлении, а также множество инструментов для создания файлов. pdf и просмотра их в .NET. Пора тебе заняться кое-какими исследованиями.
Вы можете, например, взаимодействовать с Excel с помощью автоматизации.