请教高人如何把数据库中的二进制流转换成文件并在浏览器中输出?
请教高人如何把数据库中的二进制流转换成文件并在浏览器中输出?
楼主hustsky(榕树)2004-09-26 17:39:44 在 .NET技术 / ASP.NET 提问 我在SQL Server 2000的一个数据库中设计了一张表,里面有个格式为image的字段,我将.mht格式的文件转换成二进制流存入其中。
请问,如何在把该字段数据读出来后,将其转换回.mht格式的文件,并在浏览器中把该文件的内容显示出来?
希望高手指点如何在ASP.NET(c#)中实现这一操作。 问题点数:50、回复次数:5Top
1 楼xyzciom97(大象)回复于 2004-09-26 18:02:35 得分 10
不知对你是否有用。
//填充数据表后从数据表中获得数据
byte)dataTable.Rows;
FileStream file = new FileStream( "c:\\aaa.mht" , FileMode.Create );
//写入文件
file.Write( buff,0,buff.Length );
Top
2 楼lxhlizhenhao(黎冠黎)回复于 2004-09-26 18:09:30 得分 20
将文件类型先存入数据库中,当然数据中要增加一个字段如fjlx,然后从数据库中提出来:
.........
.........
SqlCommand sqlComm = new SqlCommand("select fjmc,fjlx,fjnr from fj where fjid= @id" ,sqlConn);
....得到参数
sqlConn.Open ();
SqlDataReader dr=sqlComm.ExecuteReader ();
if(dr.Read())
{
strTitle=dr.ToString ();
this.Response.ContentType=dr.ToString ();
Response.AddHeader("Content-Disposition","attachment; filename="+System.Web.HttpUtility.UrlEncode(strTitle) );
this.Response.BinaryWrite((byte);
this.Response.Flush();
Response.End ();
sqlConn.Close();
大概是这样,请指点!Top
3 楼lsg2002lsg(lsg2002lsg)回复于 2004-09-26 18:20:27 得分 20
string strid=Request.QueryString;
string strconn;
string strsel;
strconn=ConfigurationSettings.AppSettings;
strsel="select * from gc where id="+strid;
SqlConnection conn=new SqlConnection(strconn);
SqlCommand comm=new SqlCommand(strsel,conn);
comm.CommandType=CommandType.Text;
try
{
conn.Open();
SqlDataReader dr;
dr=comm.ExecuteReader(CommandBehavior.CloseConnection);
if(dr.Read())
{
Response.Clear();
Response.ContentType=dr.ToString();
Response.BinaryWrite((byte);
}
conn.Close();
}
catch(Exception ex)
{
throw ex;
}
Response.End();
}Top
4 楼hustsky(榕树)回复于 2004-10-14 22:30:10 得分 0
感谢各位提供建议。大家的方法和我原本设计的代码的思想基本是一样的,但问题并没有很好的解决。
后来我自己发现了问题所在:
对于.mht的文件Response.ContentType应该为"message/rfc822"。
拿其它类型的文件试了一下,不应直接使用如"mht"的原文件的扩展名作为ContentType来使用,应该使用特定类型文件的ContentType,具体应适用哪个ContentType可以参见注册表中的相关项来适用。
例如,.mht的文档的ContentType可以在HKEY_CLASSES_ROOT\.mht中的"ContentType"中查看到,其值为"message/rfc822"。
.htm的为"text/html",.xml的为"text/xml",.wma的为"audio/x-ms-wma",等等。其它文档类似。Top
5 楼cancersyf(fengzhimei)回复于 2004-10-14 23:04:53 得分 0
那现在还有什么问题呢?Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
