2
<p:media value="C:/Users/xyz/Desktop/sample.pdf" width="100%" height="600px">    
</p:media>

我正在使用此代码加载放置在我桌面上的 PDF,但它没有从那个地方加载 PDF。我搜索了很多但找不到原因。所以从 JSF 专家那里我想知道是否可以加载使用primefaces媒体标签从项目文件夹之外的文件/pdf/图像(任何资源)?如果是,那么如何?

注意:如果我将它放在我的项目文件夹中,我可以加载它。但我想从外部加载它。
谢谢

4

1 回答 1

2

该值必须指向有效的 URL,而不是本地磁盘文件系统路径。必须从该 URL 下载 PDF 的是网络浏览器。正如您所期望的那样,不是网络服务器必须以某种方式将 PDF 自动包含在 HTML 输出中。

您不能期望每个网页访问者都在他们自己的本地磁盘文件系统上的那个位置准确地拥有那个 PDF 文件。更不用说他们还运行 Windows。

最简单的方法是将该 PDF 移动到公共 Web 内容文件夹(您也将 JSF 页面放入其中)并按如下方式引用它

<p:media value="/sample.pdf" width="100%" height="600px" />

假设有问题的 JSF 页面是通过http://example.com/context/page.xhtml提供的,那么网络浏览器将通过http://example.com/context/sample.pdf下载 PDF (并且您需要确保它也可以通过该 URL 单独使用)。

如果您不想将 PDF 文件放在您的 web 应用程序中,而是在其他地方,则另一种选择是将该磁盘文件系统位置作为“虚拟主机”准确添加到服务器配置中,以便它可以通过 URL 使用。你可以在这里找到一些提示:How to show the server path image to PrimeFaces p:graphicImage?

于 2012-12-24T04:19:08.627 回答