如何获取JSF托管bean的包路径?

时间:2010-05-17 17:28:56

标签: java jsf

我正在尝试上传外部图片,我需要将其保存在我有托管bean的文件夹中。知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

使用Class#getResource()获取课程所在的网址。

URL beanClassPath = Bean.class.getResource("");
File imageFile = new File(beanClassPath.getPath(), imageFileName);
// ...

然而,这通常是一个非常糟糕的主意。如果您重新部署Web应用程序,一切都将丢失。而是将图像存储在Web应用程序之外的某个固定路径中,例如, /images左右。在Windows环境中,这将自动引用启动Web应用程序的磁盘,例如, c:/images

File imageFile = new File("/images", imageFileName);
// ...

您还可以考虑将它们存储在数据库中,您只需要在其中存储一些元数据,例如原始文件名,内容类型,最好还有内容长度,最后是创建和最后修改时间戳。您通常使用java.io.File方法获得的那种信息。只要您想将图像提供回网页,您就会需要它们。