0
我想上传一个外部图像,我需要将其保存在一个文件夹中,我有一个托管的bean。任何想法我怎么能做到这一点?如何获取JSF托管bean的包路径?
我想上传一个外部图像,我需要将其保存在一个文件夹中,我有一个托管的bean。任何想法我怎么能做到这一点?如何获取JSF托管bean的包路径?
使用Class#getResource()
获取该类所在的URL。
URL beanClassPath = Bean.class.getResource("");
File imageFile = new File(beanClassPath.getPath(), imageFileName);
// ...
但是,这通常是一个非常糟糕的主意。如果你重新部署webapp,一切都会丢失。而是将图像存储在web应用程序之外某处的某个固定路径中,例如, /images
左右。在Windows环境中,这将自动引用从web应用程序开始的地方开始的磁盘,例如, c:/images
。
File imageFile = new File("/images", imageFileName);
// ...
您也可以考虑将它们存储在数据库中,你只需要存储一些元数据的,比如原来的文件名,内容类型和优选还有内容长度,并最终创造和上次修改时间戳。您通常使用java.io.File
方法获得的那种信息。只要您想将图像提供回网页,您就会需要它们。