2016-04-27 47 views
0

我将PDF文件放置在不同的(FILE-Server)服务器计算机上,并且托管了我的MVC应用程序的IIS计算机有权访问该文件服务器。从IIS机器,我可以通过以下URI访问该文件:通过来自不同服务器的头文件下载文件

file://file-server/data-folder/pdf/19450205.pdf 

我想使我的MVC应用程序的用户可以通过点击下载链接或按钮来下载他们相应的文件。所以可能我不得不为该链接/按钮编写一些操作。

我试着在下面的方式来使用文件返回类型为我的行动方法:

public ActionResult FileDownload() 
{ 
    string filePth = @"file://file-server/data-folder/pdf/19450205.pdf"; 
    return File(filePth , "application/pdf"); 
} 

,但上面的代码给URI的例外,不支持。

我也尝试使用FileStream读取数组中的字节返回字节往下载,但FileStream也给出了错误的不适当的“虚拟路径”,因为文件不放在虚拟路径内,它在单独的服务器上。

回答

0
public ActionResult Download() 
{ 
    var document = = @"file://file-server/data-folder/pdf/19450205.pdf"; 
    var cd = new System.Net.Mime.ContentDisposition 
    { 
     // for example foo.bak 
     FileName = document.FileName, 

     // always prompt the user for downloading, set to true if you want 
     // the browser to try to show the file inline 
     Inline = false, 
    }; 
    Response.AppendHeader("Content-Disposition", cd.ToString()); 
    return File(document.Data, document.ContentType); 
} 
0

感谢您的回复,但两项建议都无效。

作为文件需要通过URI访问,使用FileInfo给出错误:不支持URI格式。

我设法得到这种通过以下机制来完成:

public ActionResult FaxFileDownload() 
    { 
     string filePth = @"file://file-server/data-folder/pdf/19450205.pdf"; 

     WebClient wc = new WebClient(); 
     Stream s = wc.OpenRead(filePth); 

     return File(s, "application/pdf"); 

    } 

感谢所有。