怎么在asp.net中生成word文档,并且直接打开呢?

lychyabi 2009-12-07 07:32:39
我的做法:
1.生成数据流插入到数据库中的image字段
2.生成word文档
while (reader.Read())
{
fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
bw = new BinaryWriter(fs);
startIndex = 0;
//将字节流读入outbyte缓冲区中并返回读取的字节数
reval = reader.GetBytes(0, startIndex, outbyte, 0, buffersize);
//当读取的字节流达到缓冲区允许的最大长度时要卸载缓冲区内的数据并将数据写入文件
while (reval == buffersize)
{
bw.Write(outbyte);
bw.Flush();
//重新设定开始读取的位置,并继续读取和写数据
startIndex += buffersize;
reval = reader.GetBytes(0, startIndex, outbyte, 0, buffersize);
}
//将缓冲区内最后剩余的数据写入文件
bw.Write(outbyte, 0, (int)reval - 1);
bw.Flush();
bw.Close();
fs.Close();
}

可以正常生成word文档。
但生成后手动打开。会有错误提示:‘文件已损坏,无法打开’

3.打开word

<a href="yit.docx" target="_blank">open</a>
Response.Redirect("yit.docx");

我在windows 7 & ie8下执行这述代码时。
有跑出一个提示框“打开,保存,取消”
可是我点打开后。它要嘛是无反应。要嘛就会变成一个压缩档 yit.zip

但我在FF下是可以正常打开的。

各位大大有遇到这样的情况吗。或者知道怎么解决吗?
感谢先~
...全文
160 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhanghe100 2011-03-22
  • 打赏
  • 举报
回复
一路奔跑1314 2011-03-22
  • 打赏
  • 举报
回复
http://download.csdn.net/source/3019728
打开各种程序的代码-----全!
  • 打赏
  • 举报
回复
不结账 呀???给点分撒
lychyabi 2009-12-07
  • 打赏
  • 举报
回复
如果我是打开 office 2003.则正常。
那为什么打开 docx文件时。默认会变成zip?
lychyabi 2009-12-07
  • 打赏
  • 举报
回复
谢谢各位回复

<a href="yit.docx" target="_blank">open </a>
Response.Redirect("yit.docx");

这样子的代码都是可以执行下去。但是弹出来的对话框后确打不开word
SmallTigerWeskit 2009-12-07
  • 打赏
  • 举报
回复
up
happy664618843 2009-12-07
  • 打赏
  • 举报
回复
文件是否正确 调试啊

62,254

社区成员

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

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

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

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