Asp.net mvc Chrome是否可以直接在浏览器中为intranet应用程序打开文件(PDF等)?

Asp.net mvc Chrome是否可以直接在浏览器中为intranet应用程序打开文件(PDF等)?,asp.net-mvc,google-chrome,hyperlink,Asp.net Mvc,Google Chrome,Hyperlink,我的ASP.NETMVC应用程序是一个内部网应用程序,在HTML中,我放置了一个指向存储在我们网络上的PDF文件的锚链接。如果您单击链接,Chrome不会在浏览器中打开这些文件,但是如果您从网页复制链接并创建新选项卡,粘贴链接,则会打开这些文件 现在,应用程序和文件都在同一个域中,那么如何让PDF在新选项卡中自动打开?我看过各种各样的Chrome扩展,但它们似乎不起作用。必须有一种方法可以使用Chrome在您的内部网中打开基于本地/网络的文件,请不要说我必须求助于糟糕的Internet Expl

我的ASP.NETMVC应用程序是一个内部网应用程序,在HTML中,我放置了一个指向存储在我们网络上的PDF文件的锚链接。如果您单击链接,Chrome不会在浏览器中打开这些文件,但是如果您从网页复制链接并创建新选项卡,粘贴链接,则会打开这些文件

现在,应用程序和文件都在同一个域中,那么如何让PDF在新选项卡中自动打开?我看过各种各样的Chrome扩展,但它们似乎不起作用。必须有一种方法可以使用Chrome在您的内部网中打开基于本地/网络的文件,请不要说我必须求助于糟糕的Internet Explorer


非常感谢您的帮助。

您是否尝试使用HTML iframe标记来显示PDF? 例如:


对你来说已经过时了,但我最近在ubuntu上的apache2服务器上解决了这个问题。我相信这是客户端浏览器的安全问题——这样网页就不会恶意打开客户端文件

解决办法是什么

  • 在我的web服务器上装载网络共享驱动器
  • html指向安装的驱动器内的pdf
  • (Apache上可选)使用.htaccess规则防止文件夹索引(列出所有文件/文件夹)

因此,网页是在打开自己的文件,而不是客户端;因此firefox/chrome/等将允许这种情况发生

修复程序应该在您的mvc项目中。只需确保操作返回FileStreamResult。例如:

return new FileStreamResult(new FileStream(filePath, FileMode.Open), MimeMapping.GetMimeMapping(filePath));

不太热衷于在实际网页中显示,而只是在新标签中显示,而不复制/粘贴链接
return new FileStreamResult(new FileStream(filePath, FileMode.Open), MimeMapping.GetMimeMapping(filePath));