JFinal如何在用户下载完成之后将服务器中对应文件进行删除

你好,最近碰到一个问题,当用户点击下载之后,服务器生成一个文件供用户下载,当用户下载完成之后,服务器中生成的文件就没有作用了,请问JFinal中是否有下载完成的标志或者是别的解决办法,可以让用户下载完成之后将文件删除。

第一次尝试时将renderFile(file)后面直接加了file.delete,发现文件用户还没下载就删除了,求助。

评论区

oschina

2018-12-12 17:32

加个表记录

老武

2018-12-12 17:34

我是把renderFile的代码复制出来,手动执行一下,然后再delete,因为所有的render操作是在controller中的方法全部执行完才执行的,不知道你明白没有

逗不逗

2018-12-12 18:04

@老武 并不是很明白,renderFile中就这么一行代码: this.render = renderFactory.getFileRender(file);获取render的,怎么手动执行一下??

lyq027

2018-12-13 10:59

@逗不逗 你要的应该是下载完成后,有个回调给服务器,然后再删除相应的文件,应该是这意思吧

老武

2018-12-13 13:29

@逗不逗 FileRender fileRender = new FileRender(file);
fileRender.setContext(getRequest(),getResponse());
fileRender.render();

逗不逗

2018-12-14 13:48

@lyq027 不是,用户下载完成之后,不用回调,就可以删除,已解决,谢谢

lyq027

2018-12-14 16:23

@逗不逗 怎么解决的呢

逗不逗

2018-12-20 10:57

新建一个类,继承rendFile类,重写render()方法,file.delete

逗不逗

2018-12-20 10:57

@lyq027 新建一个类,继承rendFile类,重写render()方法,file.delete

热门反馈

扫码入社