如何创建(跨浏览器兼容)超链接打开网络驱动器上的文件?

时间:2015-05-05 07:50:37

标签: c# asp.net iis cross-browser

我想使用带C#的ASP.NET在网络上打开共享文件夹中的文档。 我的情况如下:

  1. 我的Web服务器名称是“WebServer1”使用IIS 7
  2. 我的DC服务器名称是“DC1”
  3. 我的文件服务器名称“FileServer1”
  4. 我的文件路径 \\FileServer1\A\B\C\MyDoc.docx\\FileServer1\A\B\C\MyPDF.pdf
  5. 我尝试了以下

    1- I创建超级链接

    <a href="file:///// FileServer1\A\B\C\MyDoc.docx" target="_blank">link to file</a> 
    

    在某些使用Internet Explorer版本8的计算机上打开的文件,但在任何其他版本或Chrome,Fire Fox或任何其他网络浏览器上,当我点击超级链接时,该文件无法正常运行且没有错误,但如果我复制了链接地址并将其粘贴到Web浏览器中,则会打开文件

    我在文件服务器中为“everyone”

    提供了完全控制权限的路径

    2-我还尝试使用以下代码创建一个按钮

    Response.ContentType = 
        "application/vnd.openxmlformats- officedocument.wordprocessingml.document";
    Response.AppendHeader("Content-Disposition", "attachment; filename=5401-1-2289.docx");
    Response.Redirect("file:///// FileServer1\A\B\C\MyDoc.docx");
    Response.Flush();
    

1 个答案:

答案 0 :(得分:0)

首先,网址不正确。它应该是@"file://\\FileServer1\A\B\C\MyDoc.docx"而不是"file:///// FileServer1\A\B\C\MyDoc.docx"(我很难想到这实际上是编译的,因为你没有逃脱\ ...)

其次,您要将评论中的内容作为重定向发送为pointed out by Luaan。这不会奏效。

您可以直接传输文件。这也会阻止您将网络驱动器暴露给外部用户:

Response.TransmitFile(@"\\FileServer1\A\B\C\MyDoc.docx");