如何清理Spring Webflow中的资源?

时间:2015-06-30 09:20:21

标签: spring jsf trinidad spring-web

我有一个Spring Webflow应用程序。在一个视图状态中,用户可以将文件上载到服务器。默认情况下,Apache Trinidad仅为请求范围临时创建文件。所以我将它复制到服务器上的另一条路径,因为我们需要在下一步中确认用户。复制后,文件将保留在服务器磁盘存储上,并且引用为。

<!-- This variable holds server File path
<var name="uploadFO" class="com.company.whateverUploadFO" />
...
<!-- User uploads file here in <tr:inputFile> element -->
<view-state id="view" view="/flow/upload.xhtml">
    <transition on="reset" to="deleteFile"/>
    <transition on="start" to="startProcessing"/>
</view-state>

在正常流程中,文件将被明确删除。但有一个问题。如果用户在上传后和确认之前关闭浏览器怎么办?文件将“永久”保留在服务器磁盘上。我怎么能阻止这个?如何在用户放弃流程时注册一些调用的清理方法? 谢谢

1 个答案:

答案 0 :(得分:0)

当用户退出浏览器时,不会调用任何结束状态。所以当他退出浏览器时,不可能很好地删除它。您可以使用每分钟/每小时/每天清理资源的作业......或者您可以重新考虑解决方案并在上传后直接删除文件?