`
殷志栋java
  • 浏览: 1455 次
文章分类
社区版块
存档分类
最新评论

org.apache.commons.fileupload上传临时文件删除方法2则

 
阅读更多



在将文件项封装成FileItem 对象时,如果文件尺寸大于临界值,将会被写入临时文件。



清理方法1
这些临时文件在不再被使用的时候(如果相应的java.io.File是可回收的则更好)会自动被删除.这会被org.apache.commons.io.FileCleaningTracker的一个实例启动的一个收割线程默默执行.

    在一个web应用中,资源清理是被javax.servlet.ServletContextListener的一个实例控制的.在其他环境中,类似的观念定是适用的.

     FileCleanerCleanup 类

      web应用应该使用org.apache.commons.fileupload.FileCleanerCleanup的一个实例,只要把它 web.xml 中:

     <web-app>
       ...
       <listener>
         <listener-class>
           org.apache.commons.fileupload.servlet.FileCleanerCleanup
         </listener-class>
       </listener>
       ...
     </web-app>

不幸的是,事情到这里还没完。如果你和下面的情况一样,那么你就只需要按照上面的做,就可以清除资源了。
你使用的是commons-io 1.3或者更晚的版本。
你是从web应用的web-inf/lib里载入commons-io的,并不是从其它位置,如Tomcat的common/lib下。
如果commons-io 1.3是从你的WEB容器的classpath里载入的,那么,下面的情况可能会出现:
建议你运行两个应用,一个叫A,一个叫B。(这两个应用可能是完全一样,只不过上下文名称不一样。)这两个应用都使用了FileCleanerCleanup。现在,如果你终止应用A,B还在运行,这时,A会终止B的收割机线程。换言之,你要十分仔细地考虑是使用FileCleanerCleanup,还是不使用。   

清理方法2
创建一个 DiskFileItemFactory

      FileCleanerCleanup 提供一个 org.apache.commons.io.FileCleaningTracker 实例.此实例必须在创建一个 org.apache.commons.fileupload.disk.DiskFileItemFactory 时使用.这应该通过调用如下方法来实现:



FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(servletcontext);



DiskFileItemFactory factory = new DiskFileItemFactory();



factory.setFileCleaningTracker(fileCleaningTracker);



FileCleanerCleanup 通过一个静态方法getFileCleaningTracker()提供一个
org.apache.commons.io.FileCleaningTracker 对象。构造DiskFileItemFactory后,需要设置一个
FileCleaningTracker 对象,用于追踪产生的临时文件。如果不想追踪临时文件,设置
FileCleaningTracker 为null。
分享到:
评论

相关推荐

    com.springsource.org.apache.commons.fileupload-1.2.0.jar

    jar包资源分享,你懂的: com.springsource.org.apache.commons.fileupload-1.2.0.jar

    com.springsource.org.apache.commons.fileupload-1.2.1.jar

    com.springsource.org.apache.commons.fileupload 自己打入本地Jar包即可

    利用org.apache.commons.fileupload上传多个文件

    在使用 Apache Commons FileUpload 进行文件上传之前,你需要确保以下组件已经准备就绪: 1. **引入依赖**:首先,你需要下载并添加 `org.apache.commons.io` 和 `log4j` 的 JAR 包到你的项目类路径中。在本例中,`...

    org.apache.commons.fileupload.DiskFileUpload使用上

    `org.apache.commons.fileupload.DiskFileUpload` 是 Apache Commons FileUpload 模块中的一个类,主要用于处理 HTTP 请求中的文件上传。这个类实现了基于磁盘的文件上传存储策略,当上传文件大小超过内存阈值时,它...

    org.apache.commons.fileupload 文件上传至数据库

    标题“org.apache.commons.fileupload 文件上传至数据库”指的是使用Apache Commons FileUpload库将用户上传的文件存储到数据库中的技术。Apache Commons FileUpload是Apache软件基金会的一个开源项目,它提供了一个...

    org.apache.commons相关的所以jar包

    org.apache.commons相关的所以jar包,包括commons-beanutils-1.8.0-bin.zip;commons-betwixt-0.8.zip;commons-cli-1.1.zip;commons-codec-1.3.zip;commons-collections-3.2.1-bin.zip;commons-digester-1.8.zip...

    基于apache commons.fileupload的文件上传组件

    在创建一个基于Apache Commons FileUpload的文件上传组件时,通常会包含以下步骤: 1. 创建`DiskFileItemFactory`实例。 2. 使用工厂创建`ServletFileUpload`实例,设置大小限制。 3. 解析`HttpServletRequest`对象...

    基于apache commons.fileupload的文件上传组件,改进了上传速度

    apache commons.fileupload上传组件在上传文件时,在调用parseRequest方法时,先将输入流上传到服务器临时目录,在之后的文件处理过程中,再将临时目录下保存的文件复制到指定的目录,多了一道转储步骤。本实现抽取...

    org.apache.commons-fileupload-1.2.1.jar及上传文件的Demo

    总的来说,Apache Commons FileUpload简化了Java Web应用中的文件上传处理,使得开发者能够更专注于业务逻辑,而不是底层的文件处理细节。通过深入理解和实践提供的Demo,开发者可以更好地掌握这一强大工具的用法。

    maven实现的commons-fileupload的demo

    在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库是实现这一功能的强大工具。本示例将深入解析如何结合Maven构建一个基于Servlet的文件上传演示项目。Maven是一个项目管理工具,它可以帮助...

    org.apache.commons 常用jar 以及部分源码

    以下是压缩文件的jar包名称: commons-validator-1.3.0.jar commons-pool-1.3.jar commons-net-3.0.jar commons-logging-api-1.1.jar commons-logging-1.0.4.jar commons-lang-2.1.jar commons-io-1.3.2.jar commons...

    org.apache.commons.fileupload-1.2.2

    java上传文件锁必须的jar包,org.apache.commons.fileupload-1.2.2.LIFERAY-PATCHED-1

    org.apache.commons.fileupload

    标题 "org.apache.commons.fileupload" 指的是Apache Commons FileUpload组件,这是一个Java库,专门用于处理HTTP协议中的文件上传功能。Apache Commons是Apache软件基金会的一个项目,它提供了许多Java编程中常用的...

    org.apache.commons jar包

    这个"org.apache.commons.jar"包是Apache Commons项目的一部分,其中包含了该目录下的一系列资源文件,确保了功能的完整性和多样性。 Apache Commons库的核心理念是创建一系列高质量的、独立的、实用的Java类库,...

    commons-fileupload-1.3.2jar包和commons-io-2.5jar包.zip

    Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传和I/O操作的重要库。这两个库在处理Web应用,特别是基于JSP(JavaServer Pages)的文件上传功能时,扮演着核心角色。在这个主题中,我们将...

    2018年org.apache.commons.io jar包

    项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件

    org.apache.commons 系列的 JAR集合

    org.apache.commons 系列的 JAR集合,用以解决异常,包含内容如下: commons-cli-1.0 commons-codec-1.3 commons-collections-3.1 commons-dbcp commons-digester commons-discovery-0.2 commons-fileupload-1.2.1 ...

    commons-fileupload及源码

    总结起来,Apache Commons FileUpload是一个强大的、高度可配置的文件上传组件,它简化了Java Web应用中处理文件上传的复杂性。通过结合使用`commons-fileupload-1.3.1.jar`和`commons-fileupload-1.3.1-sources.jar...

    commons-fileupload-1.3.jar和commons-io-1.2.jar.zip

    Apache Commons FileUpload和Commons IO是两个非常重要的库,它们为Java提供了强大的文件上传和处理能力。在这个场景中,我们关注的是"commons-fileupload-1.3.jar"和"commons-io-1.2.jar"这两个文件,它们被打包在...

Global site tag (gtag.js) - Google Analytics