2

我来了一个绝望和破碎的人......

我正在开发一个企业内部网/搜索引擎应用程序。当用户打开文档时,我的 ASP.NET 代码将操作记录到 Windows 事件日志中,然后发出“Response.Redirect”(用于安全/审计)。

过程是: - 用户单击链接按钮“打开文档 My Document.doc” - 发生回发 - 服务器端代码将用户打开文档的操作记录到 SQL + Windows 事件日志 - Response.Redirect 导航到指定的文档

适用于Word 文档之外的所有内容。EG、PDF、JPG 都可以。使用 Word 2007。

代码是:

Response.Redirect("http://intranet/wcm/mydocument.doc");

当我调用此代码并打开现有 Word 实例时,Word 只会“闪烁”任务栏中已打开的所有文档。当用户单击任务栏上烦人的闪烁 Word 实例时,它会立即打开它应该打开的文档。啊!

为什么!?它快把我逼疯了。

*****旁注:* 如果指定了 Word 文档,Internet Explorer 将忽略客户端 javascript 'window.open'。所以我不能用那个。***

4

1 回答 1

1

下载文档后,似乎决定过程取决于 Microsoft Word。到那时,浏览器就不用管它了,因为它的工作已经完成。您可能想要更改下载的 Mime 类型,以便 Word/IE 无法立即识别它,并且用户被迫将其保存到磁盘(这可能更符合其他浏览器的处理方式).. ..

编辑:直接来自 Microsoft,有关如何强制下载已知 mime 类型的信息。如果您选择这种方式,则需要以编程方式设置 Content-Disposition 标头。您将需要通过将 Response.Redirect 替换为其他内容(如 ASPX 页面)来自定义下载过程,该页面根据下载所需修改其标题(尤其是 Content-Disposition),然后以编程方式从磁盘读取文件并将其写入响应输出流。Microsoft 在其 MSDN 文档中的HttpResponse 类的 Write 方法下有许多很好的代码示例;您可能会找到适合的一种或组合。

于 2009-10-22T01:53:30.150 回答