[救急]如何读取二进制还原为文件
connection.Open();
SqlDataReader dr = command.ExecuteReader();
if(dr.Read())
{
Response.ContentType = dr["DocFileType"].ToString();
Response.BinaryWrite((byte[])dr["DocFileData"]);
}
connection.Close();
这样可以在页面上显示一些东西(乱码),我不知道如何把它还原为doc文档...
我的思路是用文件流读出来,然后生成一个临时文件,然后Redirect到那个页面.. 但是不知道怎么写!
谢谢啊!! 有一点急...
问题点数:50、回复次数:7Top
1 楼Dabay(大悲)回复于 2005-06-04 17:38:11 得分 0
哪位大哥 给段代码啊??!! 万分感谢Top
2 楼LaoDai_Net(『老代』)回复于 2005-06-04 17:40:24 得分 15
try
byte[] myFile = (byte[])dr["DocFileData"];
Response.AddHeader( "Content-Type", "application/octet-stream" );
Response.AddHeader("Content-Disposition", "attachment;filename=" + "文件名" );
Response.AddHeader("Content-Length", myFile.Length.ToString());
Response.BinaryWrite(myFile);
Response.End();Top
3 楼Dabay(大悲)回复于 2005-06-04 18:28:00 得分 0
不行啊 读出来的还是是乱码...
请继续关注!!Top
4 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-04 23:13:58 得分 20
Response.ContentType = dr["DocFileType"].ToString();
你这里面的dr["DocFileType"].ToString();读出出来是什么东西?
正式的word文件,此处读取出来应该是:application/msword,而不是doc.
你可尝试直接写如下:
Response.ContentType = "application/msword";
再试一下看.
如果还不行,那可能是你的文件本来就有问题,你再重新用页面再上传一个.Top
5 楼Dabay(大悲)回复于 2005-06-05 01:57:23 得分 0
是的 ,读出来的值是application/msword
但是显示的时候是乱码啊... 我不知道是怎么回事??
是不是需要用流生成一个.doc的文件??
继续求助!!Top
6 楼yzbler(秦枫)回复于 2005-06-05 02:47:58 得分 15
你说的乱码是还原文档是内容是乱码还是文件名是乱码? LaoDai_Net所写的应该可以还原文档,如果是文件名是乱码,那是因为需要对文件名进行编码!否则显示的文件名就会是乱码!Top
7 楼Dabay(大悲)回复于 2005-06-06 10:45:01 得分 0
不是的... 我的文件名和原文件里面都没有乱码,但是显示出来的时候是乱码...
还有如果是.txt的文本文件的话,能够正常显示中文,但是没有换行! 不知道是什么 原因... 如果是图片的话,能够正常还原...Top




