ASP.NET将PDF文件从远程共享发送给用户打开

时间:2013-08-28 18:16:58

标签: c# asp.net pdf

因此,我的代码生成PDF报告并将其发布到远程文件共享服务器,所有这些都有效,因此我知道我对共享具有正确的读/写访问权限。

现在我正在尝试创建一个“打开PDF”按钮,该按钮基本上只是从远程共享向用户提供该文件,因此可以打开PDF并查看它而无需转到文件共享本身并通过挖掘它

我尝试了一些事情,但无论我做什么都会出错。

我尝试过这段代码,我曾经在我的ASP.NET服务器上运行该文件并且工作正常,但是当我给它一个远程文件时它不会工作。

Response.Clear();
Response.ContentType = "Application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=Report_Submission_" +   SubmissionID + ".pdf");
String filePath = "\\\\Fileserver\\Directory1\\Directory2\\Directory3" +       "\\Report_Submission_" + SubmissionID + ".pdf";
Response.TransmitFile(filePath);
Response.End();

使用它我得到以下异常 0x800a139e - Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器收到的消息。

我也试过这个

Response.ContentType = "application/pdf";
Response.WriteFile(filePath);

我得到同样的例外。

我刚刚尝试过

Response.Redirect(filePath);

但这也不起作用。

我试图做的是什么?您是否可以从远程文件共享中提供文件而无需先将其复制到本地服务器?

1 个答案:

答案 0 :(得分:0)

试试这个。

Response.AddHeader("Content-Type", "application/octet-stream");

Response.AddHeader("Content-Transfer-Encoding","Binary"); 

Response.AddHeader("Content-disposition", "attachment; filename=\"sample.pdf\"");

Response.WriteFile(HttpRuntime.AppDomainAppPath + @"path\to\file\sample.pdf");

Response.End();