一个极郁闷的问题,多少分都给啦!!
云智软件 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 文件,页面上什么都没有。 另存下来的话,也是好的。
有任何的建议都可以说说看看。。 有用的建议都给分。