cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From froehl...@apache.org
Subject cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart MultipartParser.java FilePartFile.java FilePartArray.java FilePart.java
Date Thu, 23 May 2002 12:01:46 GMT
froehlich    02/05/23 05:01:46

  Modified:    src/java/org/apache/cocoon/components/request/multipart Tag:
                        cocoon_2_0_3_branch MultipartParser.java
                        FilePartFile.java FilePartArray.java FilePart.java
  Log:
  applied patch from  Jeroen ter Voorde (j.tervoorde@home.nl).
  getHeaders() in multipart.FilePartFile/Array always returns null!
  IE6 submits a file part with an empty filename for empty upload
  controls. This was not correctly handled.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +16 -4     xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/MultipartParser.java
  
  Index: MultipartParser.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/MultipartParser.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- MultipartParser.java	19 May 2002 22:57:00 -0000	1.1.2.1
  +++ MultipartParser.java	23 May 2002 12:01:46 -0000	1.1.2.2
  @@ -72,7 +72,7 @@
    * FilePart: file part
    *
    * @author <a href="mailto:j.tervoorde@home.nl">Jeroen ter Voorde</a>
  - * @version CVS $Id: MultipartParser.java,v 1.1.2.1 2002/05/19 22:57:00 stefano Exp $
  + * @version CVS $Id: MultipartParser.java,v 1.1.2.2 2002/05/23 12:01:46 froehlich Exp $
    */
   public class MultipartParser extends Hashtable {
   
  @@ -184,7 +184,15 @@
   
           try {
               if (headers.containsKey("filename")) {
  -                parseFilePart(ts, headers);
  +		if (!"".equals(headers.get("filename"))) {
  +                	parseFilePart(ts, headers);
  +		} else {
  +			// IE6 sends an empty part with filename="" for
  +			// empty upload fields. Just parse away the part
  +			byte[] buf = new byte[32];
  +			while(ts.getState() == TokenStream.STATE_READING)
  +				ts.read(buf);  
  +		}
               } else if (((String) headers.get("content-disposition"))
                       .toLowerCase().equals("form-data")) {
                   parseInlinePart(ts, headers);
  @@ -226,6 +234,7 @@
               out = new ByteArrayOutputStream();
           } else {
               String filePath = uploadDirectory.getPath() + File.separator;
  +	
               String fileName =
                       new File((String) headers.get("filename")).getName();
   
  @@ -320,11 +329,14 @@
               StringTokenizer tokenizer = new StringTokenizer(hdrline);
   
               headers.put(tokenizer.nextToken(" :").toLowerCase(),
  -                    tokenizer.nextToken(" :;"));
  +                        tokenizer.nextToken(" :;"));
   
  +	        // The extra tokenizer.hasMoreTokens() in headers.put
  +	        // handles the filename="" case IE6 submits for an empty
  +	        // upload field.
               while (tokenizer.hasMoreTokens()) {
                   headers.put(tokenizer.nextToken(" ;=\""),
  -                        tokenizer.nextToken("=\""));
  +                            tokenizer.hasMoreTokens() ? tokenizer.nextToken("=\"") : "");
               }
   
               hdrline = readln(in);
  
  
  
  1.1.2.1   +2 -5      xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePartFile.java
  
  Index: FilePartFile.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePartFile.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  --- FilePartFile.java	27 Feb 2002 20:21:22 -0000	1.1
  +++ FilePartFile.java	23 May 2002 12:01:46 -0000	1.1.2.1
  @@ -59,16 +59,13 @@
    * This class represents a file part parsed from a http post stream.
    *
    * @author <a href="mailto:j.tervoorde@home.nl">Jeroen ter Voorde</a>
  - * @version CVS $Id: FilePartFile.java,v 1.1 2002/02/27 20:21:22 dims Exp $
  + * @version CVS $Id: FilePartFile.java,v 1.1.2.1 2002/05/23 12:01:46 froehlich Exp $
    */
   public class FilePartFile extends FilePart {
   
       /** Field file           */
       private File file = null;
   
  -    /** Field headers           */
  -    private Map headers;
  -
       /**
        * Constructor FilePartFile
        *
  @@ -76,7 +73,7 @@
        * @param file
        */
       protected FilePartFile(Map headers, File file) {
  -        this.headers = headers;
  +	super(headers);
           this.file = file;
       }
   
  
  
  
  1.1.2.1   +2 -5      xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePartArray.java
  
  Index: FilePartArray.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePartArray.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  --- FilePartArray.java	27 Feb 2002 20:21:22 -0000	1.1
  +++ FilePartArray.java	23 May 2002 12:01:46 -0000	1.1.2.1
  @@ -58,16 +58,13 @@
    * This class represents a file part parsed from a http post stream.
    *
    * @author <a href="mailto:j.tervoorde@home.nl">Jeroen ter Voorde</a>
  - * @version CVS $Id: FilePartArray.java,v 1.1 2002/02/27 20:21:22 dims Exp $
  + * @version CVS $Id: FilePartArray.java,v 1.1.2.1 2002/05/23 12:01:46 froehlich Exp $
    */
   public class FilePartArray extends FilePart {
   
       /** Field in           */
       private InputStream in = null;
   
  -    /** Field headers           */
  -    private Map headers;
  -
       /**
        * Constructor FilePartArray
        *
  @@ -75,7 +72,7 @@
        * @param in
        */
       protected FilePartArray(Map headers, InputStream in) {
  -        this.headers = headers;
  +        super(headers);
           this.in = in;
       }
   
  
  
  
  1.1.2.1   +7 -3      xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePart.java
  
  Index: FilePart.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/request/multipart/FilePart.java,v
  retrieving revision 1.1
  retrieving revision 1.1.2.1
  diff -u -r1.1 -r1.1.2.1
  --- FilePart.java	27 Feb 2002 20:21:22 -0000	1.1
  +++ FilePart.java	23 May 2002 12:01:46 -0000	1.1.2.1
  @@ -59,12 +59,16 @@
    * FilePartArray (which is a file in memory)
    *
    * @author <a href="mailto:j.tervoorde@home.nl">Jeroen ter Voorde</a>
  - * @version CVS $Id: FilePart.java,v 1.1 2002/02/27 20:21:22 dims Exp $
  + * @version CVS $Id: FilePart.java,v 1.1.2.1 2002/05/23 12:01:46 froehlich Exp $
    */
   public abstract class FilePart {
   
  -    /** Field headers           */
  -    private Map headers;
  +    /** Field headers */
  +    protected Map headers;
  +
  +    protected FilePart(Map headers) {
  +	    this.headers = headers;
  +    }
   
       /**
        * Returns the part headers
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org


Mime
View raw message