##### Commons FileUpload

- Overview
- User guide
- Streaming API
- FAQ
- Javadoc
- Mailing lists
- Issue Tracking
- Team
- Tasks
- SVN repository

##### Project Documentation

- Project Information
- Project Reports
  - Changes Report
  - Checkstyle
  - Clirr
  - CPD Report
  - JavaDocs
  - JDepend
  - PMD Report
  - RAT Report
  - Source Xref
  - Surefire Report
  - Test JavaDocs
  - Test Source Xref

##### Commons

- Home
- Components
- Sandbox
- Dormant
- Volunteering
- Contributing Patches
- Building Components
- Releasing Components
- Wiki

##### ASF

- Sponsorship
- Thanks

## Changes Report

### Release History

Version | Date | Description
--- | --- | ---
1.2.2 | Not yet released |
1.2.1 | 2008-01-18 |
1.2 | 2007-02-13 |
1.1.1 | 2006-06-08 | Bugfix release
1.1 | 2005-12-24 | Portlet support, substantial refactoring and numerous bug fixes
1.0 | 2003-06-26 | Initial release

### Release 1.2.2 - Not yet released

Type | Changes | By
--- | --- | ---
| Added a check for file names containing a NULL characters. Such file names are now triggering an InvalidFileNameException since the file name cannot be used as provided to create the file since it will be truncated at the NUL character on most (all?) operating systems. E.g. a file name like "test.foo0.bar" would result in "test.foo" being created. Thanks to Daniel Fabian. | jochen
| Temporary files have not been deleted, if an error occurred in FileUploadBase.parseRequest(); Fixes FILEUPLOAD-160. Thanks to Stepan Koltsov. | jochen
| Fixed example in MultipartStream Javadocs. Fixes FILEUPLOAD-158. Thanks to Stepan Koltsov. | jochen
| Ensured, that the ProgressListener is called for all items. Fixes FILEUPLOAD-157. Thanks to Paul Spurr. | jochen
| Made the ProgressNotifier public. Fixes FILEUPLOAD-156. | jochen
| Multiple documentation fixes. Fixes FILEUPLOAD-155. Thanks to Jörg Heinicke. | jochen
| Fixed the error message for FileSizeLimitExceededException from "too many characters" to "too many bytes". Fixes FILEUPLOAD-152. Thanks to Duzakropka. | jochen
| A FileSizeLimitExceededException does now contain the file and field name of the item, which caused the problem. Fixes FILEUPLOAD-154. | jochen

### Release 1.2.1 - 2008-01-18

Type | Changes | By
--- | --- | ---
| Upgrade to commons-io-1.4-SNAPSHOT, in order to use the new FileCleaningTracker and fix issues with FileCleaner. | jochen
| Made the MockHttpServletRequest comply to the servlet 2.4 specification by applying http://www.sourcelabs.com/dashboards/sash-1.2/patches/commons-fileupload-1.1-1/SUP-520.diff Fixes FILEUPLOAD-129. | jochen
| Added support for accessing the file item headers. Fixes FILEUPLOAD-130. Thanks to Michael Macaluso. | jochen
| A MalformedStreamException is now thrown, if the size of an items headers exceeds HEADER_PART_SIZE_MAX; Fixes FILEUPLOAD-116. Thanks to Amichai Rothman. | jochen
| DiskFileItem.toString() could throw an NPE. Fixes FILEUPLOAD-134. Thanks to Thomas Vandahl. | jochen
| Short files could cause an unexpected end of the item stream. Fixes FILEUPLOAD-135. Thanks to Alexander Sova. | jochen
| A FileSizeLimitExceededException was deferred until the complete file has been uploaded. Additionally, the FileSizeLimitException is now thrown immediately, if the attachments headers contain a content-length value, which exceeds the configured limit. Fixes FILEUPLOAD-145. | jochen
| Fixed a classpath problem when building with Sun JDK 1.3.1 and Ant. Fixes FILEUPLOAD-153. Thanks to Gary Gregory. | jochen

### Release 1.2 - 2007-02-13

Type | Changes | By
--- | --- | ---
| Made Streams.asString static. Thanks to Aaron Freeman. | jochen
| Eliminated duplicate code. Fixes FILEUPLOAD-109. | jochen
| Added a streaming API. Fixes FILEUPLOAD-112. | jochen
| Eliminated the necessity of a content-length header. Fixes FILEUPLOAD-93. | jochen
| Eliminated the limitation of a maximum size for a single header line. (The total size of all headers is already limited, so there's no need for another limit.) Fixes FILEUPLOAD-108. Thanks to Amichai Rothman. | jochen
| Added the ProgressListener, which allows to implement a progress bar. Fixes FILEUPLOAD-87. | jochen
| Added support for header continuation lines. Fixes FILEUPLOAD-111. Thanks to Amichai Rothman. | jochen
| It is now possible to limit the actual file size and not the request size. Fixes FILEUPLOAD-88. Thanks to Andrey Aristarkhov. | jochen
| Added the FileCleanerCleanup as an example for how to close down the FileCleaner's reaper thread nicely. Fixes FILEUPLOAD-120. Thanks to Henry Yandell. | jochen
| A descriptive NPE is now thrown, if the FileItemFactory has not been set. Fixes FILEUPLOAD-123. | jochen

### Release 1.1.1 - 2006-06-08

Type | Changes | By
--- | --- | ---
| Cache disk file item size when it is moved to a new location. Fixes FILEUPLOAD-20. | martinc
| File names were being inadvertently converted to lower case. Fixes FILEUPLOAD-30. | martinc

### Release 1.1 - 2005-12-24

Type | Changes | By
--- | --- | ---
| Updates for FileUpload 1.1-RC1. | martinc
| Added release notes for FileUpload 1.1. | martinc
| Update the User Guide to document the "right" way of using FileUpload 1.1, rather than the older, and thus deprecated, ways that are compatible with FileUpload 1.0. | martinc
| Add this change log, including all changes since the Commons FileUpload 1.0 release. | martinc
| Update Commons IO dependency to version 1.1. | martinc
| Add custom PMD configuration. | martinc
| Make inner exception classes static, which they should have been all along. | martinc
| Fix Checkstyle warnings. | martinc
| Remove Javadoc warnings. Fixes FILEUPLOAD-29. Thanks to Rahul Akolkar. | martinc
|  | martinc
| Add custom Checkstyle configuration. | martinc
| Update dependencies in POM, and add comments and scope. | martinc
| Standardise on @throws instead of having a mixture of that and @exception. | martinc
| Make DiskFileItem serializable. Thanks to Niall Pemberton for the suggestion and patch. Fixes FILEUPLOAD-50. Thanks to Niall Pemberton. | martinc
| Make the temporary file names unique across class loaders, not just within them, by including a UID in the file name. | martinc
| Include the actual and permitted sizes in both the exception message and the exception itself. Fixes FILEUPLOAD-77. | martinc
| If an explicit header encoding is not specified, use the one from the appropriate context (i.e. ServletRequest or ActionRequest). Fixes FILEUPLOAD-13. | martinc
| Add getCharacterEncoding to the request context. | martinc
| Null check and case insensitivity fixes. Fixes FILEUPLOAD-83. | martinc
|  | martinc
| Fixes to POMs Fixes COMMONSSITE-2. | dion
| Setting source and target for Java 1.3 | mrdon
| Fix typos in Javadoc code examples. Fixes FILEUPLOAD-37. | martinc
| Fix typos in exception messages. | martinc
| Obtain request content type from container instead of headers. Fixes FILEUPLOAD-5. | martinc
| New mock objects from Jetspeed-2, and new FileUpload test cases. | sullis
| added toString() methods | sullis
| Fix up the existing package.html file and add new ones for the newly introduced packages. Fairly minimal, but with a link to the user guide. | martinc
|  | martinc
| Specify the encoding (ISO-8859-1) when converting the boundary to a byte array. Fixes FILEUPLOAD-4. | martinc
| Convert to Sun coding guidelines. | martinc
| DeferredFileOutputStream moved to Commons IO. | martinc
| Workaround for Mac IE5 bug. Thanks to Justin Sampson for the patch and tests for this vexing issue. Fixes FILEUPLOAD-16. Thanks to Justin Sampson. | martinc
| Handle unquoted header parameters. Fixes FILEUPLOAD-104. | martinc
| Some documentation on interaction with virus scanners. Fixes FILEUPLOAD-78. | martinc
| More unit tests from Justin Sampson. Fixes FILEUPLOAD-31. Thanks to Justin Sampson. | martinc
| Use FileCleaner from Commons IO to clean up temp files, rather than File.deleteOnExit(), which can cause serious problems in long-running processes. Fixes FILEUPLOAD-95. | martinc
| Check that HTTP method is POST as part of multipart check. Fixes FILEUPLOAD-53. | martinc
| Switch to Commons IO version of DeferredFileOutputStream. Adding IO as a dependency will allow us to take advantage of other classes in that component to fix additional FileUpload bugs. | martinc
| handle quoted boundary specification. Fixes FILEUPLOAD-40. | martinc
| use case-independent comparisons for encoding types. Fixes FILEUPLOAD-18. | martinc
| Fix comments to avoid break iterator complaints. | martinc
| Fix typos in comments. Thanks to Yuji Yamano. | martinc
| Add support for character sets specified for individual parts. Fixes FILEUPLOAD-101. Thanks to Oleg Kalnichevski. | martinc
| Change to Apache License 2.0 | scolebourne
| Correct the comment for the no-args constructor to reflect the fact that a factory needs to be set before parsing uploads. Fixes FILEUPLOAD-22. | martinc
| Collapse some all but duplicated code. | martinc
| Fix example showing FileItem.write to use a File object. Fixes FILEUPLOAD-72. | jmcnally
| Check for null before attempting to close streams in write(). Fixes FILEUPLOAD-21. Thanks to Peter Chase. | martinc
| Correction to sample code in the docs. Fixes FILEUPLOAD-67. Thanks to Paul Dalton. | martinc

### Release 1.0 - 2003-06-26

Type | Changes | By
--- | --- | ---