下载后如何从服务器上删除文件?或者如何从输出流直接将文件存储到客户端机器



我使用的是liferay自定义portlet,现在我使用jasper报告,我的问题是如何在客户端机器上直接下载PDF报告

现在我首先在服务器上存储文件。然后提供下载PDF的网址给用户。但是,如果我有PDF文件的输出流,我如何直接将文件存储到客户端机器呢?

如果我能知道一些如何当用户点击下载链接和下载文件后,如果我想从服务器上删除下载的文件,那么我怎么能做到呢?如果有谁能指点我……

我不确定你所要求的是可能的,但我很有兴趣看到有人纠正这一说法。

服务器确实不应该直接在客户端机器上存储文件,因为这违反了客户端和服务器关系的意图。客户端必须对文件发出请求,然后客户端可以保存该文件(例如ftp下载)。服务器只是不按照他们认为合适的方式操作客户端机器。

就知道文件何时下载而言,portlet中没有任何东西可以检测到这一点。您可以使用ResourceRequest和serveResource方法来提供文件,但是portlet API中没有任何内容会通知portlet下载已经完成,或者下载没有被某些东西中断。

作为一种替代方法,您可以尝试简单地使用cron作业来清理旧文件。在这种情况下,请确保通知用户他们需要多长时间才能成功下载文件。

相关内容

最新更新