Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 在jsf页面中显示图片_File_Jsf - Fatal编程技术网

File 在jsf页面中显示图片

File 在jsf页面中显示图片,file,jsf,File,Jsf,我正在使用EJB(netbeans&glassfish服务器)开发一个web应用程序。我想在我的jsf页面上显示图片。这些图片存储在我的磁盘上,我相信我的应用程序无法使用绝对路径访问这些图片。 我一直在互联网上寻找答案,但除了使用servlet,我没有得到一个好的结果。 还有别的方法吗 这取决于这些图片存储在“磁盘上”的位置: 如果图片存储在web应用程序中,Tomcat(或您使用的任何servlet容器)将通过HTTP使它们可用,并且您可以使用普通的将它们包含到页面中 否则,您必须编写代码,

我正在使用EJB(netbeans&glassfish服务器)开发一个web应用程序。我想在我的jsf页面上显示图片。这些图片存储在我的磁盘上,我相信我的应用程序无法使用绝对路径访问这些图片。 我一直在互联网上寻找答案,但除了使用servlet,我没有得到一个好的结果。
还有别的方法吗

这取决于这些图片存储在“磁盘上”的位置:

  • 如果图片存储在web应用程序中,Tomcat(或您使用的任何servlet容器)将通过HTTP使它们可用,并且您可以使用普通的
    将它们包含到页面中
  • 否则,您必须编写代码,使它们通过http可用,例如通过servlet或使用

使用primefaces-您可以通过向DefaultStreamedContent提供文件InputSteam来显示这些图像。例如,新的DefaultStreamContent(新文件InputStream(新文件(“C:\Lukas\a.png”),“image/png”);您还可以使用omnifaces并使用returnnewFileInputStream(新文件(“/path/to/images”,filename))@我已经读过了。我使用的是primefaces,所以解决方案2)和3)可以,但我不想使用servlet和2。没成功,当然。如果你使用的是Primefaces,那就太棒了。您可以在PostConstruct方法中指向此变量,然后将其初始化为myFile=new DefaultStreamContent(新文件InputStream(新文件(“C:\Lukas\a.png”),“image/png”);我的建议是不要在getter方法中这样做。它会很好用的。我还有另一个使用img标记和base 64的方法,该方法将返回一个DefaultStreamedContent,即使文件很大,也只在web应用程序中存储图片是一个好的做法吗?通过磁盘,我的意思是图片存储在web应用程序之外。我在显示web应用程序中的图片时没有问题。将它们存储在web应用程序中是一种实践吗?图片由用户上传,每个用户可以上传多张图片。您可能希望将它们放在单独的“web应用程序”中,以便轻松更新实际应用程序。您还需要验证您接受的文件类型,这样您的服务器就不会因为上传JSP而受到攻击。备份可能是另一个需要考虑的问题。除此之外,我认为这将很好地工作。