2009-06-01 241 views
1

我的項目是用三種技術構建的Web項目:刪除文件和文件夾問題

  1. 的ICEfaces爲表示層。

  2. Spring for business layer。

  3. 休眠數據訪問層。

我的項目部署到WebSphere 6.1和用戶可以上傳文件,我用冰:INPUTFILE組件來處理上傳過程...

第一個問題是:

當上傳過程完成後,我期望找到上面的文件在以下路徑:myWebProjectRoot/upload /「sessionId」/fileName.ext

其中「sessionId」是一個文件夾與當前會話ID命名和t他fileName.ex是由用戶上傳的文件...

但我發現的是:文件夾「的sessionId」沒有創建該文件直接存儲在文件夾上傳..

我的配置就像我在服務器上部署它的icefaces庫組件展示的配置,並且它成功創建了sessionId目錄....

我不知道該怎麼做..請幫我...

第二期是:

當會話過期我期望sessionId文件夾將被刪除,我修改了代碼組件展示在類InputFileSessionCleaner並使其刪除文件夾,它的孩子形式bottm到up,但有一段時間我面對當前問題:

某些文件無法使用我的代碼刪除 - 可能是因爲它們被另一個進程使用 - 因此該文件夾將不會被刪除,因爲其中一個子項未被刪除。那麼在這種情況下該怎麼做......?

我的腦海裏有一個想法,那就是: 有什麼辦法可以在服務器端創建一個在後臺運行的進程:這個進程檢查上傳目錄,如果它發現至少創建了任何文件60分鐘哪位是我的會話超時在web.xml-這個過程中指定將刪除此文件期間....

任何人能幫助我。每天幫助將appriciated .....

+1

這些是兩個不同的問題。如果將問題分解爲兩個問題,則更有可能得到問題的答案。 – 2009-06-02 07:44:50

+0

您的第一個問題已經在這裏得到解答:[Stack Overflow question#1447029](http://stackoverflow.com/questions/1447029/change-the-upload-directory-path-for-an-iceinputfile-component) – karlgrz 2009-09-18 22:25:10

回答

0

回答第二個問題:

WebSphere有一個創建工作線程和安排他們按照時間表發起。這種方法在WebSphere中得到完全支持 - 您不會通過使用它來違反任何Java EE對線程創建的限制。

在WebSphere文檔中搜索異步Bean。

在WebSphere中有這種功能的幾種風格,其中一種通常是標準化的形式,您也可以在其他供應商的應用服務器中找到。一些描述在這裏給出:http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html