在没有.doc扩展名的Word中打开Word文档链接(重定向)

Opening Word Document Link in Word without .doc extension (redirect)

本文关键字:Word 文档 链接 重定向 doc 扩展名      更新时间:2023-09-26

我想知道这是否可能不诉诸一些复杂的解决方案。我有引用文档管理系统位置的链接(没有.doc扩展名)。这些链接,因为他们缺乏扩展,在Internet Explorer中打开,这反过来打开一个下载对话框。这会导致Word无法处理文档的打开,从而导致一些小的最终用户问题(延长启动时间等)。

是否有办法自动重定向链接到microsoftword ?我发现了一个解决方案,链接被"标记",然后通过JavaScript打开Word使用activex -但这不是理想的。据我所知,没有办法确定一个"类型",使链接打开,如果它有。doc扩展名(即:<a href="***" type=".doc">~</a>)。理想情况下,我只想要一个更"原生"的方式来打开Word中的链接,而不是在IE中。

我知道你说你只能使用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

<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) window.open

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

5) xmlhttprequest
<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类型,所以您的实际情况可能会有所不同。

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

你真的尝试过。doc扩展名吗?我想你有,但有些系统被设置为处理几个,甚至是任意的扩展,基本上告诉后端需要什么格式。然后它会将该格式与适当的mime类型一起发送回来,等等。