2009-06-01 174 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