Changes File for MultipartRequest
---------------------------------

1.30rc1	Updated the getFileContent() method to return an instance of EmptyInputStream,
		where a filename was provided in the upload process, but the file was empty.
		Updated trimQuotes(...) method to fix bug #693432
1.30b4	Minor fix to ServletMultipartRequest to include all constructors from 1.30b2 and
		previous releases, to avoid users having to recompile their code when they upgrade
		the multipartrequest library.  Updated the servlet examples to use the new non-deprecated
		constructors.
1.30b3  Minor fixes to setEncoding(String enc), thanks to Rob Gaunt & ZiP (zip_dev)
		Fix to readAndWriteFile(...) method to ensure the out file is always closed, even if an
		exception occurs, thanks to David Thompson.
		
		Modified ServletMultipartRequest to use ServletRequest object instead of HttpServletRequest.
		This was due to a request by Stefan <mail@stefan-birkner.de>.  It does not impact the
		performance or functionality of the class, so I implemented the changes.
		
		Removed catch all try...catch in TempFile.createTempFile(...) method, so that any IOException
		is passed back up to the main class.  Thanks to Torsten Hildebrandt
		
		Revise some of the changes made in 1.3-jspWiki
		
1.3-jspWiki - Torsten Hildebrandt (THildebrandt@gmx.de)   
		Fixes
		    - TempFile.createTempFile() caused an endless loop on Windows if filename is a 
              URL with Parameters. 
		    - using fixed scheme for temporary file-names now ("multPartReq"<integer>".tmp"). Old scheme 
		      not only triggered the endless loop above, but also throws an exception with short filenames 
		      (like "ab.txt").
		Enhancements
		    - Encoding can be specified for each object independently.
		    - method getRawFilename() added, that returns the filename exactly as transmitted by 
			the browser		
1.30b2	A minor fix to readAndWriteFile(...) method.  We need to check for whether 'out' object is null 
		before trying to call the close method.

1.30b1	Added functionality to save uploaded files under a temporary file name.  I 'borrowed' the TempFile
		class functionality from Java 2 java.io.File to ensure that this class is still compatible with
		JDK 1.1.x.  I also modified some of the string comparisons ('Content-Type') to be case-insensitive,
		just in case some idiot decides to write a browser which does not initcap the Content and the Type
		words.

1.21	A minor fix for IE4 on Mac which added extra newline after last boundary.  This 'fooled' previous
		versions of MultipartRequest into thinking another block was present.  [NEVER OFFICIALLY RELEASED]

1.20	A very minor fix, but one apparently that was causing some serious issues for some users.  The intTotalRead
		integer was being set to -1, which meant that it was always off by one when comparing to Content-Length.
		Thanks to David Tuma for this fix.  19/10/2001

1.19	Moved the MultipartRequest into a package, and thus into a java archive for easier dissemination.
		Fixed a bug, where in netscape if a file was uploaded with an unrecognised extension, no Content-Type
		was specified, so the first line of the file was chopped off.  Also modified the structure of the parse
		method to make it easier to manage.  I was checking strFileName length and nullness in two if blocks,
		so I moved them together.  This should make the parse(...) method easier to understand as well. 26/07/2001

1.18	Fixed some serious bugs.  A new method readAndWrite(InputStream in, OutputStream out) which now does
		the generic processing in common for readAndWriteFile and readFile.  The differences are that now
		the two extra bytes at the end of a file upload are processed once, instead of after each line.  Also
		if an empty file is encountered, an outputstream is opened, but then deleted if no data written to it.
		The getCharArray() method has been removed.  Replaced by the new String(bytes, encoding) method using
		a specific encoding (Defaults to ISO-8859-1) to ensure that extended characters are supported.  
		All strings are processed using this encoding.  The addition of static methods setEncoding(String) 
		and getEncoding() to allow the 	use of MultipartRequest with a specific encoding type.  All instances
		of MultipartRequest will utilise the static charEncoding variable value, the setEncoding() method
		can be used to change it.  Refer to the warning with the setEncoding(...) method for restrictions regarding
		multithreading and this class.  26/06/2001

1.17	A few _very_ minor fixes.  Plus a cool new feature added.  The ability to save files into memory.
		Thanks to Mark Latham for the idea and some of the code.  In this release the testupload.java 
		test classes for CGI and Servlet have been augmented with subclasses of MultipartRequest.  
		ServletMultipartRequest.java and CgiMultipartRequest.java.  The addition of these two classes 
		simplifies the use of the library, as all you have to do (for example) in the case of the 
		ServletMultipartRequest is include a reference to the HttpServletRequest object in the constructor.
		Because each of these classes extends MultipartRequest, you can still do everything you can before,
	 	just that instantiation is a little easier.  Refer to the new testupload.java/testMemoryUpload.java
	 	for each environment for more ideas.	11/04/2001

1.16	Added support for multiple parameter values.  Also fixed getCharArray(...) method to support 
		parameters with non-english ascii values (ascii above 127).  Thanks to Stefan Schmidt & 
		Michael Elvers for this.  (No fix yet for reported problems with Tomcat 3.2 or a single extra 
		byte appended to uploads of certain files).  By 1.17 hopefully will have a resolution for the
		second problem.  14/03/2001

1.15	A new parameter added, ignoreMaxReadLength, to allow arbitrary length files.  Released under
		the LGPL (Lesser General Public License).  	03/03/2001

1.14	Fix for IE problem with filename being empty.  This is because IE includes a default Content-Type
		even when no file is uploaded.  16/02/2001

1.13	If an upload directory is not specified, then all file contents are sent into oblivion, but the
		rest of the parsing works as normal.

1.12	Small fix again. Class was creating zero length files.  If file is zero length it no longer
		appears in the upload directory.

1.11	Small fix, to avoid StringOutofBoundsException if a content-type was not specified.

1.1		This class is no longer restricted to servlets.
		There are two subdirectories in the archive: "cgi/" and "servlet/".  Examples of utilising the 
		MultipartRequest class in each environment.

1.0		Initial Release.