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
方法獲得的那種信息。只要您想將圖像提供回網頁,您就會需要它們。