1

我有一个 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>

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

4

1 回答 1

0

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

于 2015-06-30T09:36:30.880 回答