自定义文件扩展名适用于文件资源管理器,但不适用于浏览器

Custom file extensions works in File Explorer but not browsers

我想要一个我编写的 C# winforms 应用程序来自动消化 pdf 文件...所以,我在我的安装程序中注册了 .webprintpdf 类型。并且...我已将名为 test.pdf 的文件重命名为 test.webprintpdf...当我在文件资源管理器中双击该文件时...它会由我的应用程序自动打开。

但是在我的 html 我有这个代码...

<script language="JavaScript">window.location.href = 'test.webprintpdf';</script>

注意:此文件的 mimetype 设置为 "application/octet-stream"。

所有浏览器都会下载该文件...但其中 none 想要使用我的应用程序打开它。

使用 Firefox 和 Chrome 它默认保存...当我尝试打开它时,我的应用程序没有显示在可能的 "helper" 应用程序列表中...但是如果我浏览到我的可执行文件,它工作正常。但是,在这两种情况下,"Save as Default" 要么被禁用要么不可用。

在 IE 中...文件的文本直接显示在浏览器中 window。

如果您希望文档在浏览器外部打开,您需要设置以下内容header:

content-disposition: attachment; filename=xxx.webprintpdf

否则浏览器将尝试内联处理文档。

此外,请确保您的 header 允许缓存内容(即 而不是 设置 HttpCacheability.NoCache) 否则浏览器将始终显示另存为对话框,因为它无法缓存文件以在应用程序中打开它。