1

我想在 iframe 上显示 pdf,但我的 pdf 不在项目文件夹中(C:\intetpub\wwwroot)。它保存在驱动器 D:\ 上。

示例代码:
<iframe src="D:\Test.pdf#page=30"></iframe>

我试过ff:

src="file:///D:/Test.pdf#page=30"
src="<%: Url.Content(Model.path) %>"

但仍然没有运气。我不想复制/移动项目文件夹或根文件夹上的 pdf。有没有其他方法可以做到这一点,或者我的 src 路径是错误的?

我打算创建一个 showPDF.aspx,把它放在 iframe 上,但我担心 adobe url 参数可能无法使用这个解决方案。

4

2 回答 2

1

使用您粘贴的代码,浏览器将尝试显示来自 CLIENT 机器 D 驱动器的该文件。您需要在应用程序中创建一个指向 PDF 文件夹的虚拟目录。然后,您可以像引用 Web 应用程序根目录中的实际目录一样引用该虚拟目录。

  1. 在 IIS 中设置一个虚拟目录(可能称为 PDF?)并指向 D:\
  2. 现在,您的源链接可能类似​​于src="\PDF\Test.pdf"

另一种方法是让控制器/操作进入该目录,将文件读入字节数组并将FileResult文件内容返回给最终用户。 这是关于如何从控制器操作中将文件返回给用户或按照 Darin 的建议直接返回文件的 SO 答案

public ActionResult Pdf()
{
    return File(@"d:\test.pdf", "application/pdf");
}
于 2012-07-27T06:45:54.000 回答
1

您必须编写一个控制器操作来检索文件并将其流回响应:

public ActionResult Pdf()
{
    return File(@"d:\test.pdf", "application/pdf");
}

现在在您看来,您可以使用 iframe 将其指向此控制器操作:

<iframe src="<%= Url.Action("Pdf", "SomeController") %>"></iframe>
于 2012-07-27T06:46:21.033 回答