社区
Java SE
帖子详情
客户端文件下载结束后怎样删除Server上临时文件
wang_yong
2009-10-30 05:46:48
请教高人:在Download文件下载后,怎样删除存放在服务器上的临时文件??
...全文
494
11
打赏
收藏
客户端文件下载结束后怎样删除Server上临时文件
请教高人:在Download文件下载后,怎样删除存放在服务器上的临时文件??
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wang_yong
2009-11-02
打赏
举报
回复
[Quote=引用 10 楼 jdk150 的回复:]
不要用FileStreamInfo,方法还是很多的
1.从action跳转到jsp/servlet中去做下载
2.在action中直接用response向浏览器输出字节流,然后return null
[/Quote]
有没有现成的例子可以借鉴一下吗??
jdk150
2009-11-02
打赏
举报
回复
不要用FileStreamInfo,方法还是很多的
1.从action跳转到jsp/servlet中去做下载
2.在action中直接用response向浏览器输出字节流,然后return null
xingqiliudehuanghun
2009-11-02
打赏
举报
回复
我们的项目没有用Structs框架,所以可以直接在jsp中设置header,然后将文件写入输出流,
不需要FileStreamInfo对象。按你的情况可能你只能按人家的规矩来了。这样的话这个思路你
看是否可行.
1.将生成的下载文件统一放到一特定目录。
2.文件名称加上时间前缀
3.用以特定线程最为GC,每隔一段时间扫描下目录将时间前缀与当前系统时间之差大于指定
时间间隔的文件作为垃圾文件删除
这样你的程序就不要考虑临时文件删除的问题了,就像Java中不用考虑内存的问题一样,
但弊端也是有的。如果你的站点访问量大的话可能垃圾文件一个时间间隔的文件增加
也是很客观的。而且由于判断垃圾文件的方法比较简单,可能造成一个比较大的文件
正在下载中却被当做垃圾删掉。所以这个办法是万不得已的办法,只能你的文件下载代码
允许你修改,尽量修改代码来解决问题
wang_yong
2009-11-02
打赏
举报
回复
[Quote=引用 6 楼 xingqiliudehuanghun 的回复:]
为什么不直接写到输出流中呢,那样就不用考虑删除文件的问题了
[/Quote]
兄弟,我非常同意你的这种想法,我也尝试过,但是FileStreamInfo这个对象必须传一个File对象给她,如果是流的就好了,你有什么好办法吗?
zjhlht
2009-11-02
打赏
举报
回复
[Quote=引用 6 楼 xingqiliudehuanghun 的回复:]
为什么不直接写到输出流中呢,那样就不用考虑删除文件的问题了
[/Quote]
同意
xingqiliudehuanghun
2009-11-02
打赏
举报
回复
为什么不直接写到输出流中呢,那样就不用考虑删除文件的问题了
wang_yong
2009-11-02
打赏
举报
回复
[Quote=引用 1 楼 youthon 的回复:]
请说明具体条件吧
[/Quote]
具体情形是这样的:
从DB读取数据,在服务器导出Excel临时文件,download到客户端后,删除服务器上生成的那个临时Excel文件。
前面的操作现在都没有问题了(虽然还有不足),就是删除临时文件的操作,不知怎样来操作。
protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
// 源文件路径
srcFilePath = servlet.getInitParameter("file-upload");
// 生成Excel文件
File file = createExcel();
System.out.println(file.getAbsolutePath());
// 设置下载新的文件名
String newFileName = Constants.FILE_NAME
+ CommonUtils.getDateFormat(Constants.DATE_YMDH24MS) + ".xls";
newFileName = new String(newFileName.getBytes("gbk"), "iso-8859-1");
// 设置方式:附件
response.setHeader("Content-disposition", "attachment; filename=" + newFileName);
// 设定下载文件类型
FileStreamInfo si = new FileStreamInfo("application/vnd.ms-excel", file);
return si;
}
这是download的代码,如果在这个方法的return前使用file.delete()的话,会报文件不存在的错误,就是说还没有提示客户下载就已经将源文件删除了。
littlemonster
2009-10-30
打赏
举报
回复
我曾经用php做过这个。。
那个文件属性啥的一定要改好。。否则删不掉。。
苍蝇①号
2009-10-30
打赏
举报
回复
不知道你的服务器端和客户端是怎么交互的
swandragon
2009-10-30
打赏
举报
回复
File
delete方法
弘石
2009-10-30
打赏
举报
回复
请说明具体条件吧
Python快速搭建局域网HTTP服务器:从http.
server
到Flask实战指南
HTTP服务器是网络通信的核心组件,它遵循
客户端
-服务器模型,通过HTTP协议处理请求与响应。其基本原理是监听特定端口,解析请求报文并返回相应资源。在开发测试、内网协作等场景中,快速搭建一个轻量级HTTP服务能极大提升效率,例如实现局域网文件共享或原型演示。Python标准库中的http.
server
模块为此提供了极简方案,而Flask等框架则能扩展为功能更丰富的定制服务。本文聚焦于利用Python内置模块与Flask,在局域网内快速部署HTTP服务,涵盖http.
server
的极速文件共享与Flask构建
SQL
Server
2008完整卸载指南:彻底清理残留文件与注册表
数据库管理系统(DBMS)的安装与卸载是系统运维中的基础操作,其原理涉及操作系统底层的文件系统、注册表和服务管理机制。在Windows环境中,SQL
Server
等大型数据库软件的安装过程会深度集成系统组件,若卸载不彻底,残留的注册表项、服务配置和文件锁将导致后续安装失败或服务冲突,影响系统稳定性。从技术价值看,完整的卸载流程能确保系统环境纯净,避免版本兼容性问题,为升级或重装奠定基础。这一实践在数据库迁移、版本升级和环境重建等应用场景中尤为重要。本文以SQL
Server
2008为例,详细解析如何通过官
Argo CD 命令实战:`argocd repocreds rm`
删除
仓库凭证模板全解析
`argocd repocreds rm` 是 Argo CD 命令行工具中用于**
删除
仓库凭证模板(credential templates)** 的子命令,适用于 Git 与 Helm 仓库的批量凭据管理场景。本文以官方命令参考文档 [argocd_repocreds_rm.md](https://link.gitcode.com/i/4c29e4f0bcbdbd0a678c86da7c673
Java Selenium远程测试环境搭建与文件上传下载实战
在软件测试领域,自动化测试是提升效率和保证质量的关键技术。其核心原理是通过脚本模拟用户操作,对软件功能进行验证。Selenium作为主流的Web自动化测试框架,通过WebDriver协议控制浏览器,实现了跨平台的测试能力。在团队协作和持续集成场景下,本地测试常面临环境差异和资源瓶颈。RemoteWebDriver采用
客户端
-服务器架构,将测试脚本与浏览器执行环境分离,解决了环境标准化、资源集中管理和CI/CD集成三大痛点。通过部署Selenium Grid,可以构建统一的远程测试执行集群。本文聚焦Java技
磁力下载工具选型指南:BitTorrent
客户端
深度对比与NAS部署实战
BitTorrent
客户端
是实现磁力链接下载的核心执行层,其本质是P2P协议栈的本地终端,负责Peer连接调度、分片校验与带宽协同。理解这一原理,才能跳出‘搜资源’误区,聚焦于协议支持(DHT/PEX/uTP)、硬件适配(ARM架构/内存限制)与网络环境(NAT类型/IPv6)的真实匹配。qBittorrent、Transmission、Deluge、BiglyBT和Tixati五大工具代表了功能完备性、极简稳定、插件自由、隐私增强与原生性能五种工程路径;而群晖NAS等嵌入式场景下,Docker容器化部署+
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章