如何根据内容类型将byte []或blob数据转换为可理解的.csv或.xlsx或.pdf。 [英] How to convert byte[] or blob data to understandable .csv or .xlsx or .pdf based upon the content type.

查看:27
本文介绍了如何根据内容类型将byte []或blob数据转换为可理解的.csv或.xlsx或.pdf。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

要求就像从oracle数据库中提取数据一样,该数据库将是BLOB数据类型。我需要根据内容类型下载blob数据,比如说.csv或.xlsx或.pdf是否可读。





请帮我解决这个问题。



我的尝试:



// while(reader.Read())

// {

// // byte [] stream =(byte [])阅读器[ DATA];

// string fileName =(string)reader [FILE_NAME];

// string contentType =(string)reader [FILE_TYPE] ;

// // WriteFile(stream,fileName,contentType,HttpContext.Current.Response);





// FileStream fs; //将BLOB写入文件(* .bmp)。

// BinaryWriter bw; //将BLOB流式传输到FileStream对象。

// int bufferSize = 100; // BLOB缓冲区的大小。

// byte [] outbyte = new byte [bufferSize]; //由GetBytes填充的BLOB byte []缓冲区。

// long retval; //从GetBytes返回的字节。

// long startIndex = 0; // BLOB输出中的起始位置。







// //创建一个文件到保持输出。

// fs = new FileStream(@C:\ Users \V.Manjunatha \Desktop\Packages\+ fileName,

// FileMode.OpenOrCreate,FileAccess.Write);

// bw = new BinaryWriter(fs);



// //重置新BLOB的起始字节。

// startIndex = 0;



// //将字节读入outbyte []并保留返回的字节数。

// retval = reader.GetBytes(1,startIndex,outbyte,0,bufferSize);



// //当有超出缓冲区大小的字节时继续读写。

// while(retval == bufferSize)

// {

// bw.Write(outbyte);

// bw.Flush();



// //将起始索引重新定位到最后一个缓冲区的末尾并填充缓冲区。

// startIndex + = bufferSize;

// retval = reader.GetBytes(1,startIndex,outbyte,0, bufferSize);

//}



// //写下剩余的缓冲区。

// bw .Write(outbyte,0,(int)retval);

// bw.Flush();



// //关闭输出文件。

// bw.Close();

// fs.Close();



//}



当我使用此代码时.csv文件为





?<?½K®?¹ŽžÛ7à™l $ô~''???????????????????????????????????????????????????????????????????????????????????????????????????????????? OSS?OSS?ý¿åïÿü§üý×?êúgýïÿ- ç8þñ/ücš?9·ô?ðŸHÿ? þOHKr¤ÿ?? F7 ????? ?? ??Pgû



'6Î?ËŸ'Q §ú-ÇŒ?À
$ b $bŒ6ÿJ?ñ£@&iXPž³Bò??Š?9??XRÿåŸ???(KC,ÒÒ?`?“€ ?? R [ׯß?XY?4 [μ??Æ
$ b $b¤I??(¶†Ç?ÒÈÓ?:I {rþ¼<?eŒ¿ÄOXÄòŽú?? @¬ ý/•õ?Î#b`È?¨ëéç?ùòùº?žð??¥çúÅ?.1 ??õ?×CüÊqÿÒT

=Ìn?k?Ò(í4Õ〜@ g?zZïc}Ì?@ *ôRúS?·œU¨Í?†Ðа°?? ?? *?ú

#F?(?? ?? ??¥¥f?'jéÈ#k0òšé?€4 ?4™RU ??£FC????ܾ®/ I d(Z:ÒßhýûX(Z | - / ?? - êHåþm:€ŒÃÑSYE#YDA£OZ ??&NBSP;'tý6G?。 *
$ b $bÌ5>>€Â1s÷V`®??q͸}?2L×Ð!éz?[?o©* ??å
$ b $bLžÍ-†þ¾þÔ '??×+ J±l @ |³³þÿ?f?yé?ã[ÿ*#pÆÐl²?3Žé?P` |μ?~þ<ó?0¥¢@¡??€>dQÀ? ?Ü~你¶?? x?ñ - ??继õ?fÊ??Pe?ÎØ>

4H×Ï·¥|?Ú??9r¾ÿZ?g¬á#ïzû \ l @ vK?O?

4R?|ßÏP?¾?Á??8 @? - ?¶???AòäAX<éú??íb <<,我€g`I¿âμÚ;????@ A°{RZE中号-O ??Ž™UX_¡-/¢A [?AA X¥‰b]Ÿ‰|æMÆáŠ<无线电通信/>
T ??Kë'?? | *äì?P¡Î%¯μ|?Bçμ¤:Ò½-Øò¡Khw.0®¥¤Ô{?ã'$ ??:RýùÝ÷   +É'åìó¡uÙ?Ž¥>

°t l©Nä4

?Ùs] O·ï1Xó

???•?〜¢d-O LT;} YA-•Y4„ db~¬...¤x€| EAø3] YA IY @:R] IO 4 ?? | + II&NBSP; SY???? ??ÎÓÀp¤úH»3E​​C¿#Ù®wäCÇÀ²<??米@&安培; ?? AHY ??¬μá3õvý的cç`·å2ƒ$gª3í¥例如Z3]þ????? töè\awƒ>} akO-¹<€〜m ¨

)ÙÀÞ??šåæQ!m€U†Õ<
$ b $bô?X @Ó™ ?3??ôÇžT€øøEÐß·nå=à1?€Ø%〜

ó??Ï?????‡À
$ b $bY²v
$ b $bô9V[Ž}á'¯ÕÝ?`〜

}àtv5öü°-9v¤Ð?作为

`†«¹zržà× - æoæþùzØ'BÀú&安培;0u'kÓ&NBSP; ??? 1IO£克的EIS @ =€:?!????RFE°‰Æ??
9irx?:

;-ãO?À

Œî?_Êßœù{û!3?ãð¤2¡ñ¯4?? {B»} - :?'½‰!Só
$ b $b'3ÝYRÙ

> ;ŸJÕ??Xzμ?Ý2æ^ž@Þ€ƒfkÃ&?'cVl ??





这是不可读的。

解决方案

ô~'???OàÎà€«cÜÆ???

I?_ÿã???ÿÿÿþ?þçß?â€? ?òß?å¿åïÿü§üý×?êúgýïÿ-ç8þñ/ücš?9·ô?ðŸHÿ? þOHKr¤ÿ?? F7 ????? ?? ??Pgû


$ b $b'6​​Î?ËŸ'Q §ú-ÇŒ?À
$ b $bŒ6ÿJ?ñ£@&iXPž³Bò??Š?9??XRÿåŸ (KC,ÿÒ?`???? R [ׯß?XY?4 [μ??Æ
$ b $b¤I??(¶†Ç?ÒÈÓ?:我{rþ¼<?eŒ¿ÄOXÄòŽú?? @ýý/•õ?Î#b`È?¨ëéç?ùòùº?žð??¥çúÅ?.1 ??õ?×CüÊqÿÒT
=Ìn?k?Ò(í4Õ〜@ g?zZïc)Ì?@ *ôRúS?·œU¨Í?†Ðа°?? ?? *?ú

#F?(? ?¿¥±f½'jýÈ#k0òšé?€4?4?™RU ??£FC ܾ®/Î?d(Ž:Òßhýû?x(Ž?| - / ?? - êHåþm:€ŒÃ?sýÊ#yÐÃ?£óz??。 'tý6G*
$ b $bÌ5 >>€ÂÂ1s÷V`®??q͸}?2L×Ð!éz?[?o©* ??å
$ b $bLžÍ-†þ¾þÔ'??×+ J±l @ | ³ºþÿ?f?yé?ã[ÿ*#pÆÐl²?3?é?P` |μ?~þ<ó?0¥¢@¡€>dQÀ??Ü~u¶?? x?ñ - ??继õ?fÊ??Pe?ÎØ>

4H×Ï·¥|?Ú??9r¾ÿZ?g¬á#ïzû\ l @ vK?OÎ

4R¿|ßÏP?¾?Á??8 @? - ?¶\\ \\?AòäAX<éú??íb<<'Ï€g`I¿âμÚ; @寰 {ržÈ?M?-Õ??Ž™UX_¡-/¢A [Á?x¥‰]Ÿ‰|æMÆá?Š

T ??Kë'?? | *äì ?P¡Î%μ|Bçμ¤:ؽ-Øò¡KIw.0®¥¤Ô{A'

- :?RýùÝ÷&NBSP; +É'åìó ¡Ù¥>

°t l©Nä4

?Ùs] O·ï1Xó

???•〜 ¢d-O LT;} YA-•Y4„ db~¬...¤x€| EAø3] YA IY @:?????R] IO 4 ?? | + II&NBSP; sY' ??ÎÓÀp¤ú 6 H»3EC¿#Ù®wäCÇÀ²<?米@&安培;?????AHY的¬μá3õvý·cç`å2ƒ

gª3?í¥êgž¨3?]þ?töè\awƒ>} akO-¹<€〜m ¨

)ÙÀÞ??šåæQ!m€UÀ† Õ<
$ b $bô?X @Ó™?3±?ôÇžT€øøEÐß·nå=à1?€Ø%〜

ó??Ï? `?“
$ b $bY²v
$ b $bô9V[Ž}á'¯¯Ý?`〜

}àtv5öü°-9v¤Ð?至于

`†«¹zržà×-æoæþùzØ'BÀú?&0u'kÓ?  ???1ÏÔ£!g?Èìß@ =€:RfË°‰Æ??
9irx?:

;-ãO?À
$ b $bŒî?_Êßœù{û!3?ãð¤2¡ñ¯4?? {B »} - :?'½‰!Só
$ b $b'3ÝYRÙ

>ŸJÕ??Xzμ?Ý2æ^ž@Þ€ƒfkÃ&?'cVl ??





这是不可读的。


Requirement is like extract the data from the oracle database which will be in BLOB datatype. I need to download the blob data based upon the content type like say if it is .csv or .xlsx or .pdf in the readable way.


Please help me out from this.

What I have tried:

//while (reader.Read())
//{
// //byte[] stream = (byte[])reader["DATA"];
// string fileName = (string)reader["FILE_NAME"];
// string contentType = (string)reader["FILE_TYPE"];
// //WriteFile(stream, fileName, contentType, HttpContext.Current.Response);


// FileStream fs; // Writes the BLOB to a file (*.bmp).
// BinaryWriter bw; // Streams the BLOB to the FileStream object.
// int bufferSize = 100; // Size of the BLOB buffer.
// byte[] outbyte = new byte[bufferSize]; // The BLOB byte[] buffer to be filled by GetBytes.
// long retval; // The bytes returned from GetBytes.
// long startIndex = 0; // The starting position in the BLOB output.



// // Create a file to hold the output.
// fs = new FileStream(@"C:\Users\V.Manjunatha\Desktop\Packages\" + fileName,
// FileMode.OpenOrCreate, FileAccess.Write);
// bw = new BinaryWriter(fs);

// // Reset the starting byte for the new BLOB.
// startIndex = 0;

// // Read the bytes into outbyte[] and retain the number of bytes returned.
// retval = reader.GetBytes(1, startIndex, outbyte, 0, bufferSize);

// // Continue reading and writing while there are bytes beyond the size of the buffer.
// while (retval == bufferSize)
// {
// bw.Write(outbyte);
// bw.Flush();

// // Reposition the start index to the end of the last buffer and fill the buffer.
// startIndex += bufferSize;
// retval = reader.GetBytes(1, startIndex, outbyte, 0, bufferSize);
// }

// // Write the remaining buffer.
// bw.Write(outbyte, 0, (int)retval);
// bw.Flush();

// // Close the output file.
// bw.Close();
// fs.Close();

//}

When i use this code the .csv file as


‹„½K®¹ŽžÛ7à™l$ô~´OàÎà€«cÜƝ?
"I_ÿãýÿÿÿþûþçßâßÒßòßý¿åïÿü§üý×êúgýïÿ-ç8þ ñ/ü"cš9·ôðŸHÿ þ"OHKr¤ÿF7äþ©¨2)Pgû"

´6ÎËŸ'Q §ú—ÇŒÀ
Œ6ÿJñ£@&iXPž³BòŠ9¬XRÿ埐(KC‚ÿÒ `âÈ6€R[ׯßXY4[µÆ
¤I(¶†ëÇÒÈÓ:I{rþ¼‹eŒ¿ÄOXÄòŽú?@¬ý/•õÎ#b`Ȩëéçùòùºžðˆ¥çú"Å.1õ×CüÊqÿÒT
=ÌnkÒ(í4Õ˜@gzZïc}Ì@*ôRúS·œU¨Í†¨ÐË°)* ú
#F(¿¥±f½‘jýÈ#k0òšé€44™rú£Fç¯"ܾ®/Îd(Ž:Òßhýûx(Ž¦-/–êHåþm:€ŒÃÑ"sýÊ#yÐãóz. ‘tý6G*
Ì5››€ŒÂ1s÷V`®q͸}2L×Ð!éz[o©*Š
LžÍ—†Ó¾þÔ'×+J±l@¦³ºþÿfyéã[ÿ*#pÆÐl ²3ŽéP`¦µ˜þ<ó0¥¢@¡'ã¼€>dQÀÜ~­u¶x­ñ-"继õfÊŸPeÎØ›
4H×Ï·¥|ڏ9r¾ÿZg¬á#ïzû\l@v„KOÎ
4R¿|ßÏP¾?Á©8@ —¶\Aòä¬AX‹éúí­b‹<‘Ï€g`I¿âµÚ;@寰{ržÈM-ՏŽ™UX_¡-/¢A[ÃÁx"¥‰¾]Ÿ‰|æMÆáŠ
TK봁¦*äìP¡Î%¯µ|B絤:Ò½–Øò¡KIw.0®¥¤Ô{ã'$??:RýùÝ"÷ +É’­åìó¡uÙŽ¥›
"°t l©Nä4"
Ùs]O·ï1Xó
„ •„~¢d–Ò<}ýÀ-•y4„db˜¬…¤x€|ÈÁø3]ŸÀ IŸ@:R]IÖ4¦+IÍ sY´ÎÓÀp¤úh»3ec¿#Ù®wäCÇÀ²<m@&ähy¬µá3õvýöfcç`·å2ƒ$gª3í¥êg„ž¨3]þtöè\awƒ>}akO— ¹<€˜m ¨
)ÙÀÞšåæQ!m€UÀ†Õ"‹
ôX@Ó™3±ôÇžT€üøEÐß·nˆå=à1€Ø%˜ˆ
"óÏˆ`âú‡ À"
ˆY²v
ô9V[Ž}á’¯ÕÝ`˜
}àtv5öü°—9v¤ÐAs"
"`†«¹zržà×–æoæþùzØ‘BÀú&0u’kÓ 1ÏÔ£!gÈìß@=€:RfË°‰Æ‹eVÚÛ–¹‚ó5CŽU4‘Ÿ%Çïýõ;Çbb²¬ë?®. îF¹äxÏð¤L82ôøéþk1YÈc}ÉÏíe(2wÆ Õx™¡½Œ 4¼a:\4¥²ÌÐ"
9irx:
;-ãO À
Œî_Êßœù{û!3"ãð¤2¡ñ¯4{B» }–:'½‰!Só"
´3ÝYRÙ
>ŸJՁXzµÝ2æ^ž@Þ€ÌfkÃ&´cVl


which is not readble.

解决方案

ô~´OàÎà€«cÜƝ?
"I_ÿãýÿÿÿþûþçßâßÒßòßý¿åïÿü§üý×êúgýïÿ-ç8þ ñ/ü"cš9·ôðŸHÿ þ"OHKr¤ÿF7äþ©¨2)Pgû"

´6ÎËŸ'Q §ú—ÇŒÀ
Œ6ÿJñ£@&iXPž³BòŠ9¬XRÿ埐(KC‚ÿÒ `âÈ6€R[ׯßXY4[µÆ
¤I(¶†ëÇÒÈÓ:I{rþ¼‹eŒ¿ÄOXÄòŽú?@¬ý/•õÎ#b`Ȩëéçùòùºžðˆ¥çú"Å.1õ×CüÊqÿÒT
=ÌnkÒ(í4Õ˜@gzZïc}Ì@*ôRúS·œU¨Í†¨ÐË°)* ú
#F(¿¥±f½‘jýÈ#k0òšé€44™rú£Fç¯"ܾ®/Îd(Ž:Òßhýûx(Ž¦-/–êHåþm:€ŒÃÑ"sýÊ#yÐãóz. ‘tý6G*
Ì5››€ŒÂ1s÷V`®q͸}2L×Ð!éz[o©*Š
LžÍ—†Ó¾þÔ'×+J±l@¦³ºþÿfyéã[ÿ*#pÆÐl ²3ŽéP`¦µ˜þ<ó0¥¢@¡'ã¼€>dQÀÜ~­u¶x­ñ-"继õfÊŸPeÎØ›
4H×Ï·¥|ڏ9r¾ÿZg¬á#ïzû\l@v„KOÎ
4R¿|ßÏP¾?Á©8@ —¶\Aòä¬AX‹éúí­b‹<‘Ï€g`I¿âµÚ;@寰{ržÈM-ՏŽ™UX_¡-/¢A[ÃÁx"¥‰¾]Ÿ‰|æMÆáŠ
TK봁¦*äìP¡Î%¯µ|B絤:Ò½–Øò¡KIw.0®¥¤Ô{ã'


??:RýùÝ"÷ +É’­åìó¡uÙŽ¥›
"°t l©Nä4"
Ùs]O·ï1Xó
„ •„~¢d–Ò<}ýÀ-•y4„db˜¬…¤x€|ÈÁø3]ŸÀ IŸ@:R]IÖ4¦+IÍ sY´ÎÓÀp¤úh»3ec¿#Ù®wäCÇÀ²<m@&ähy¬µá3õvýöfcç`·å2ƒ


gª3í¥êg„ž¨3]þtöè\awƒ>}akO— ¹<€˜m ¨
)ÙÀÞšåæQ!m€UÀ†Õ"‹
ôX@Ó™3±ôÇžT€üøEÐß·nˆå=à1€Ø%˜ˆ
"óÏˆ`âú‡ À"
ˆY²v
ô9V[Ž}á’¯ÕÝ`˜
}àtv5öü°—9v¤ÐAs"
"`†«¹zržà×–æoæþùzØ‘BÀú&0u’kÓ 1ÏÔ£!gÈìß@=€:RfË°‰Æ‹eVÚÛ–¹‚ó5CŽU4‘Ÿ%Çïýõ;Çbb²¬ë?®. îF¹äxÏð¤L82ôøéþk1YÈc}ÉÏíe(2wÆ Õx™¡½Œ 4¼a:\4¥²ÌÐ"
9irx:
;-ãO À
Œî_Êßœù{û!3"ãð¤2¡ñ¯4{B» }–:'½‰!Só"
´3ÝYRÙ
>ŸJՁXzµÝ2æ^ž@Þ€ÌfkÃ&´cVl


which is not readble.


这篇关于如何根据内容类型将byte []或blob数据转换为可理解的.csv或.xlsx或.pdf。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆