【问题标题】:Opening Word Document Link in Word without .doc extension (redirect)在没有 .doc 扩展名的 Word 中打开 Word 文档链接(重定向)
【发布时间】:2014-07-25 13:36:29
【问题描述】:

我想知道如果不采取一些复杂的解决方法,这是否可能。我有引用文档管理系统位置的链接(没有 .doc 扩展名)。这些链接由于缺少扩展名,因此会在 Internet Explorer 中打开,从而打开下载对话框。这会导致 Word 无法处理文档的打开,从而导致一些较小的最终用户问题(启动时间延长等)。

有没有办法自动将链接重定向到 Microsoft Word?我找到了一种解决方法,其中链接被“标记”,然后由 JavaScript 使用 Active X 打开到 Word 中——但这并不理想。据我所知,没有办法识别“类型”,因此链接打开时就好像它具有 .doc 扩展名(即:<a href="***" type=".doc">~</a>)。理想情况下,我只想要一种更“原生”的方式在 Word 中而不是在 IE 中打开链接。

【问题讨论】:

  • 理想情况下,您希望在最初上传文件时存储 MIME 类型。然后在下载时告诉响应应该是什么 MIME 类型,然后浏览器可以选择适当的操作
  • 所以,文档管理系统知道是Word Doc,但是没有提示要被Microsoft Word打开的链接。由于没有扩展,浏览器最初还是在 IE 中打开链接。
  • 不确定为什么会有反对票?
  • 您是否在控制服务器端代码?这是一个编码问题,还是一个关于如何使用特定应用程序/系统的问题?
  • 这是一个编码问题,因为我无法控制正在使用的系统或对这方面进行任何更改。我只能访问 HTML/CSS/JS。我无法使用服务器端代码或进行任何系统更改

标签: javascript html internet-explorer ms-word content-management-system


【解决方案1】:

我知道你说你只能使用 html、css 和 javascript,但我想为了完整起见,我会包括几个传统的路线,如 htaccess 和 php。最后三个是 javascript 解决方案,我敢打赌,数字 5 最有可能适合您。数字 4 将被弹出窗口阻止程序阻止,数字 3 并没有真正发送任何标题...

1).htaccess(放在存放文件的文件夹中)

<Files *.*>
    ForceType application/octet-stream
    Header set Content-Disposition attachment
</Files>

2) 使用 php 可以为每个文件设置标题

header("Content-disposition: attachment; filename=msword_doc");
header("Content-type: application/msword");
readfile("msword_doc")

3) 内嵌框架

<iframe id="iframe" src="" style="display:none"></iframe>
<script>
    var frame = document.getElementById("iframe");
    window.onload = setTimeout(function(){
        frame.src="/directory/msword_doc";
    },100);
</script>

4) 窗口打开

<script>
    window.open("/documents/msword_doc");
</script>

5) xmlhttp请求

<script>
    var client = new XMLHttpRequest();
    client.open('GET', '/documents/msword_doc');
    client.setRequestHeader('Content-disposition', 'attachment');
    client.setRequestHeader('Content-type', 'application/msword');
    client.send();
</script>

附带说明:并非所有 word 文档都使用相同的 mime 类型 - 因此您的使用范围可能会有所不同。

【讨论】:

  • 从某种意义上说,解决方案 1 奏效了...在内容系统中将 MIME 类型更改为 application/octet-stream 可以让文档更流畅地打开。不知道为什么,但我认为这与使用 IE8 导致 doc MIME 类型不规则打开有关。
【解决方案2】:

恐怕您要么必须发送正确的 mime 类型(应用程序/msword),要么至少使文件以正确的扩展名 (.doc) 可访问。如果您无法控制系统,那么您就是 SOL。

您是否真的尝试过使用 .doc 扩展名?我想你有,但是有些系统被设置为处理几个,甚至是任意的扩展,这些扩展基本上告诉后端需要什么格式。然后它将使用正确的 mime 类型等发送回该格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多