有关使用Response.BinaryWrite()来下载word文件的问题

yhcnux 2003-02-14 03:44:23
使用Response.BinaryWrite()可以把数据库中(任何地方的,只要是byte[]类型)的二进制文件写入http输出流,这样产生的效果就像下载一下,不过如果文件是图片的话,则会直接显示出来,但是如果文件是word文件,结果就乱了,既显示不出来,也不能出下载效果,而且页面又出了问题,有谁能解释是怎么回事吗?怎样才能正确下载呢?
另:下载的文件名默认会成为此页的名字,怎样设定呢?谢谢。如果是图片,怎样使他在新的一页输出呢?
大家有什么好办法吗?多谢指教。
...全文
507 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonghaibinfc 2003-06-02
  • 打赏
  • 举报
回复
up
yhcnux 2003-02-14
  • 打赏
  • 举报
回复
谢谢,谢谢二位,已经完全搞定。
结帖。
spring_ok 2003-02-14
  • 打赏
  • 举报
回复
try:

Page.Response.Buffer=true;
Page.Response.Clear();
Page.Response.ContentType="Application/unknown";
Response.AddHeader("Content-Disposition","attachment; filename=" +
ds.Tables[0].Rows[0]["filename"].ToString() + ";");

Page.Response.BinaryWrite(file);
Page.Response.Flush();
Page.Response.End();

wuyueyoumu 2003-02-14
  • 打赏
  • 举报
回复
上传
this.Label1.Text = this.File1.PostedFile.ContentType;
byte[] FileContent = new Byte[this.File1.PostedFile.InputStream.Length];
this.File1.PostedFile.InputStream.Position =0;
this.File1.PostedFile.InputStream.Read(FileContent,0,FileContent.Length);
string fileType = this.File1.PostedFile.ContentType;
string fileName = this.File1.PostedFile.FileName;
string SqlStr = "insert filetest(fileName,fileType,fileDetail) values(@Name,@fileType,@fileDetail)";
// string SqlStr = "insert filetest(fileName,fileType,fileDetail) values(?,?,?)";
SqlCommand com = new SqlCommand(SqlStr);
com.Parameters.Add("@Name",fileName);
com.Parameters.Add("@fileType",fileType);
com.Parameters.Add("@fileDetail",FileContent);
SqlDataConnector con = new SqlDataConnector();
con.SqlOpen();
con.ExecuteSqlCommand(com);
下载
string SqlStr = "select * from filetest";
SqlDataConnector con = new SqlDataConnector();
con.SqlOpen();
SqlDataReader dr = con.GetDataReader(SqlStr);
if(dr.Read())
{

this.Response.ContentType = Convert.ToString(dr["fileType"]);
Response.AddHeader("Content-Disposition:", "attachment; filename=" + HttpUtility.UrlEncode("正文.doc"));
object dbValue = dr["fileDetail"];
byte[] file = (byte[])dbValue;
this.Response.BinaryWrite(file);
this.Response.Flush();

}
dr.Close();

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧