jsdever 2002/11/16 19:11:28 Modified: httpclient/src/java/org/apache/commons/httpclient/methods MultipartPostMethod.java httpclient/src/java/org/apache/commons/httpclient/methods/multipart FilePart.java FilePartSource.java Log: Patch for allowing the changing of the filename in in a multipart file post. I.E. 1.) file name gotten from alternate string in FilePart. 2.) file name gotten from java.io.File object in FilePart. Contributed by: Mark R. Diggory Revision Changes Path 1.4 +11 -3 jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java Index: MultipartPostMethod.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/MultipartPostMethod.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MultipartPostMethod.java 5 Nov 2002 17:50:22 -0000 1.3 +++ MultipartPostMethod.java 17 Nov 2002 03:11:27 -0000 1.4 @@ -80,6 +80,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Matthew Albright</a> * @author <a href="mailto:[EMAIL PROTECTED]">Jeff Dever</a> * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Sutton</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Mark Diggory</a> * * @since 2.0 */ @@ -157,6 +158,13 @@ parameters.add(param); } + public void addParameter(String parameterName, String fileName, File parameterFile) + throws FileNotFoundException { + log.trace("enter addParameter(String parameterName, String fileName, File parameterFile)"); + Part param = new FilePart(parameterName, fileName, parameterFile); + parameters.add(param); + } + /** * Adds another part to this post. */ 1.6 +19 -3 jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java Index: FilePart.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePart.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- FilePart.java 10 Nov 2002 08:09:53 -0000 1.5 +++ FilePart.java 17 Nov 2002 03:11:27 -0000 1.6 @@ -81,6 +81,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Jeff Dever</a> * @author <a href="mailto:[EMAIL PROTECTED]">Adrian Sutton</a> * @author <a href="mailto:[EMAIL PROTECTED]">Michael Becke</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Mark Diggory</a> * * @since 2.0 * @@ -108,6 +109,21 @@ public FilePart(String name, File file) throws FileNotFoundException { this( name, new FilePartSource( file ) ); + } + + /** + * FilePart Constructor. + * + * @param name + * @param fileName + * @param file the file to post + * + * @throws FileNotFoundException if the <i>file</i> is not a normal + * file or if it is not readable. + */ + public FilePart(String name, String fileName, File file) + throws FileNotFoundException { + this( name, new FilePartSource( fileName, file ) ); } /** 1.2 +30 -4 jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java Index: FilePartSource.java =================================================================== RCS file: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/methods/multipart/FilePartSource.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- FilePartSource.java 10 Nov 2002 08:09:53 -0000 1.1 +++ FilePartSource.java 17 Nov 2002 03:11:27 -0000 1.2 @@ -72,6 +72,7 @@ * A PartSource that reads from a File. * * @author <a href="mailto:[EMAIL PROTECTED]">Michael Becke</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Mark Diggory</a> * * @since 2.0 */ @@ -79,6 +80,8 @@ private File file; + private String fileName = null; + /** * Constructor for FilePartSource. * @@ -100,6 +103,26 @@ } /** + * Constructor for FilePartSource. + * + * @exception FileNotFoundException if the file does not exist or + * cannot be read + */ + public FilePartSource( String fileName, File file ) throws FileNotFoundException { + + if (! file.isFile()) { + throw new FileNotFoundException("File is not a normal file."); + } + + if (! file.canRead()) { + throw new FileNotFoundException("File is not readable."); + } + + this.file = file; + this.fileName = fileName; + } + + /** * @see org.apache.commons.httpclient.methods.multipart.PartSource#getLength() */ public long getLength() { @@ -110,7 +133,10 @@ * @see org.apache.commons.httpclient.methods.multipart.PartSource#getName() */ public String getFileName() { - return file.getName(); + if(fileName == null) + return file.getName(); + else + return fileName; } /**
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>