一个极郁闷的问题,多少分都给啦!!

云智软件 2003-03-20 09:15:55
我们都知道,在一个 页面中如果要输出非 html 的内容,设置页面的正确的 Content-type 即可,俺以前在java 做这样的事情没有碰到过什么问题,而最近接手的一个 asp.net 的项目,一个文档管理的东东,该应用用的是 基本认证方式。用户使用其域用户登陆到系统。
在显示文档的页,代码如下:

string url = Request[DOC_KEY];

if (url != null){
this.Response.ClearHeaders();
this.Response.ClearContent();
this.Response.Clear();
Document doc = DocumentManager.Instance.getDocument(url);
Response.ContentType=doc.GetContentType;

Response.AppendHeader("Pragma","No-cache");
Response.AppendHeader("Cache-Control","no-cache");
Response.AppendHeader("Expires", "0");

string fileName = doc.DisplayName;
string contentDisp = " inline; filename="+ this.Server.UrlEncode(fileName);
this.Response.AppendHeader("Content-disposition", contentDisp);
byte[] cont = doc.GetContents;
this.Response.BinaryWrite(cont);
this.Response.Flush();
this.Response.End();
}else{
Response.Write("没有文档内容");
}

这段代码对于一般的图片什么的文档没有问题,但是:
如果打开的是 Word 文档,在关闭 IE窗口的时候 ,又弹出一个用户认证的窗口,该窗口取消掉之后也没事。
如果打开的是 PowerPoint 文档,IE 报了一个 站点找不到的错误。而如果把内容另存下来,文档内容是正确的。
如果打开的 Mht 文件,页面上什么都没有。 另存下来的话,也是好的。

有任何的建议都可以说说看看。。 有用的建议都给分。


...全文
31 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

62,046

社区成员

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

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

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

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