【发布时间】:2016-03-02 20:52:18
【问题描述】:
我正在使用 EJB(netbeans 和 glassfish 服务器)开发一个 Web 应用程序。我想在我的 jsf 页面上显示图片。这些图片存储在我的磁盘上,我相信我的应用程序无法使用绝对路径访问这些图片。 我一直在互联网上寻找答案,但除了使用 servlet 之外,我没有得到好的结果。 还有另一种方法吗?
【问题讨论】:
-
使用 primefaces - primefaces.org/showcase/ui/multimedia/graphicImage.xhtml 您可以通过将 fileInputSteam 提供给 DefaultStreamedContent 来显示这些图像。例如 new DefaultStreamedContent(new FileInputStream(new File("C:\Lukas\a.png")), "image/png");您也可以使用omnifaces showcase.omnifaces.org/components/graphicImage 并使用 return new FileInputStream(new File("/path/to/images", filename));
-
@MahendranAyyarsamyKandiar 我读过这个。我正在使用 primefaces,所以解决方案 2) 和 3) 可能没问题,但我不想使用 servlet 和 2. 没有成功。
-
当然。如果您使用的是 Primefaces,那就太好了。您可以指向
然后在 PostConstruct 方法中将此变量初始化为 myFile = new DefaultStreamedContent(new FileInputStream(new File("C:\Lukas\a.png" )), "图片/png");我的建议是不要在 getter 方法中这样做。它会正常工作。我还有另一种使用 img 标签和 base 64 的方法 -
该方法将返回一个 DefaultStreamedContent 并且
-
即使文件很大,将图片存储在网络应用程序中是否是一个好习惯?