我正在使用 liferay 自定义 portlet 并且正在使用 jasper 报告现在我的问题是我如何直接在客户端机器上下载 pdf 报告
现在我首先将文件存储在服务器上。然后提供用于将 pdf 下载到用户的 url。但是如果我有 pdf 文件的输出流,我如何直接将文件存储到客户端机器。
ot 如果我能知道用户单击下载链接时的一些方法,并且在下载文件后,如果我想从服务器中删除已删除的文件,那么我该怎么做。?如果有人可以指导我...
我不确定您所要求的是否可行,但是我很想看到有人纠正该陈述。
服务器确实不应该直接将文件存储在客户端计算机上,因为这违反了客户端服务器关系的意图。客户端必须对文件提出请求,然后客户端才能保存该文件(例如,像 ftp 下载)。服务器只是不会按照他们认为合适的方式操作客户端机器。
就知道何时下载文件而言,您无法在 portlet 中进行任何检测。您可以使用 ResourceRequest 和 serveResource 方法来提供文件,但是 portlet API 中的任何内容都不会通知您的 portlet 下载已完成或它没有被某些东西中断。
作为替代方案,您可以尝试简单地执行一个清理旧文件的 cron 作业。在这种情况下,请务必告知用户他们需要多长时间才能成功下载文件。