簡體   English   中英

在JSP中上傳和保存文件

[英]Uploading and saving files in JSP

我正在嘗試使用帶有Spring / hibernate的Apache Common FileUpload在JSP中上傳圖像。 上傳圖像效果很好。 我的項目文件夾位於以下路徑。

E:\Project\SpringHibernet\wagafashionNew\wagafashion

解析請求后,我正在嘗試將上傳的圖像保存到以下文件夾中。

E:\Project\SpringHibernet\wagafashionNew\wagafashion\web\images

我已經嘗試過多種方式來獲得這條路,但我無法成功。

指定相對路徑,如下所示

File f=new File("wagafashion/web/images/image_file.xxx");

不行。

有沒有辦法檢索以下路徑?

E:\Project\SpringHibernet\wagafashionNew\wagafashion\web\images

或者使用new File("relative_file_path")構造函數指定相對路徑?

我將文件保存到錯誤的目錄中嗎? 在那種情況下,要保存項目文件夾文件?

也許。

有一種方法可以向ServletContext詢問getRealPath(“/ web / images”),看看是否會返回一些東西 - 它沒有,但很可能會。 如果是,那么您可以將圖像放在那里。

然而。

如果您像大多數人一樣使用WAR進行部署,那么一旦重新部署,所有這些映像都將會消失,因為大多數容器都會部署WAR並將其分解到文件系統。 在您執行此操作之前目錄中的任何內容(即上次部署時的代碼和工件)將再見,因此您將“丟失”您的圖像。

您可以通過執行目錄部署來緩解這種情況,即部署已經展開的目錄。 然后你知道應用程序的位置(因為你把它放在那里)。 然后,您可以在進行更改時將該目錄與新代碼同步(特別是您可以刪除不再需要的舊內容)。

除此之外,不同的容器具有不同的機制,用於在外部目錄中映射到應用程序空間。 Glassfish具有您可以使用的“備用doc根”的概念。 這允許您在部署外部放置靜態內容並且仍可由容器提供服務,但在重新部署時不會消除。

最后,您可以自己完成,流式傳輸自己的圖像等,而無需依賴容器。 通過這種方式,您可以將圖像放在文件系統,數據庫中,內存中等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM