commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Cooper <mart...@apache.org>
Subject Re: FileCleanerCleanup question
Date Wed, 21 Oct 2009 05:08:53 GMT
On Tue, Oct 20, 2009 at 10:22 AM, Davis Ford
<davisford@zenoconsulting.biz> wrote:
> Hi, is anyone on this list familiar with commons-io / commons-fileupload?
>
> If not, is there somewhere else I should be asking questions?
>
> I still have the issue indicated below, and I have an additional question.
>
> When you parse the request... =>
>
> final List<FileItem> items = (List<FileItem>) upload.parseRequest(request);
>
> commons-fileupload also generates files for form field items (e.g. text box
> values).  This is an undesired side effect.  I want it to generate a file
> for the actual file that is uploaded, but not the form fields.  Is there a
> way to control that?

Whether a file is created depends on whether the size is over the
(customisable) threshold. Below the threshold, the item's content will
be kept in memory; above the threshold, it will be written to disk. If
that's not flexible enough for your needs, you can provide your own
FileItem class and your own factory to instantiate it.

--
Martin Cooper


>
> Thanks in advance,
> Davis
>
>
> On Mon, Oct 19, 2009 at 12:06 PM, Davis Ford
> <davisford@zenoconsulting.biz>wrote:
>
>> Hi, it is my understanding from the commons-io javadoc, that if you create
>> a FileCleanerCleanup it will remove files in a directory once the reference
>> to the File is GC'd.
>>
>> Given that, I'm using commons-fileupload, and I set the listener in web.xml
>> as:
>>
>> <listener>
>>
>> <listener-class>org.apache.commons.fileupload.servlet.FileCleanerCleanup</listener-class>
>> </listener>
>>
>> In my servlet, I have this:
>>
>> private static FileCleaningTracker tracker;
>>
>>     @Override
>>     protected void initServletContext(ServletContext servletContext) {
>>         super.initServletContext(servletContext);
>>         tracker =
>> FileCleanerCleanup.getFileCleaningTracker(servletContext);
>>     }
>>
>> ...and in my method that accepts a file upload, I add the
>> FileCleanerCleanup:
>>
>> final DiskFileItemFactory factory = new DiskFileItemFactory(0, tempDir);
>> factory.setFileCleaningTracker(tracker);
>> final ServletFileUpload upload = new ServletFileUpload(factory);
>>
>> My files are uploaded and stored in the temp directory as expected.  In the
>> processing of a file upload, I store the FileItem object in the session as
>> an attribute.  Now, if the session expires, I expect the attribute to be
>> GC'd and as a result, the FileCleanerCleanup would go and cleanup the
>> directory, but it does not.
>>
>> Can anyone tell me what I may be doing wrong?
>>
>> Thanks in advance,
>> Davis
>>
>>
>>
>
>
> --
> Zeno Consulting, Inc.
> home: http://www.zenoconsulting.biz
> blog: http://zenoconsulting.wikidot.com
> p: 248.894.4922
> f: 313.884.2977
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message