You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by ms...@locus.apache.org on 2000/11/21 19:39:06 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/upload MultipartIterator.java DiskMultipartRequestHandler.java

mschachter    00/11/21 10:39:04

  Modified:    src/share/org/apache/struts/upload MultipartIterator.java
                        DiskMultipartRequestHandler.java
  Log:
   - Now gracefully handles null input files from multipart requests, just make sure that you check
     for zero length file names and a null content type  to find out if the client uploaded a file or not
  
  Revision  Changes    Path
  1.3       +4 -2      jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java
  
  Index: MultipartIterator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/MultipartIterator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MultipartIterator.java	2000/11/21 17:38:31	1.2
  +++ MultipartIterator.java	2000/11/21 18:39:02	1.3
  @@ -123,7 +123,7 @@
           if ((disposition != null) && (disposition.startsWith("Content-Disposition"))) {
               String name = parseDispositionName(disposition);
               String filename = parseDispositionFilename(disposition);
  -                       
  +                                   
               String contentType = null;
   
               byte[] data = null;
  @@ -193,7 +193,7 @@
               catch (UnsupportedEncodingException uee) {
                   data = textData.getBytes();
               }
  -                        
  +            
               MultipartElement element = new MultipartElement(name,
                                                               filename,
                                                               contentType,
  @@ -358,11 +358,13 @@
       public static String parseForAttribute(String attribute, String parseString) {
           int nameIndex = parseString.indexOf(attribute + "=\"");
           if (nameIndex != -1) {
  +            
               int endQuoteIndex = parseString.indexOf("\"", nameIndex+attribute.length()+3);
               
               if (endQuoteIndex != -1) {
                   return parseString.substring(nameIndex+attribute.length()+2, endQuoteIndex);
               }
  +            return "";
           }        
           return null;
       }
  
  
  
  1.5       +1 -1      jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java
  
  Index: DiskMultipartRequestHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/upload/DiskMultipartRequestHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DiskMultipartRequestHandler.java	2000/11/21 17:38:31	1.4
  +++ DiskMultipartRequestHandler.java	2000/11/21 18:39:02	1.5
  @@ -59,7 +59,7 @@
           allElements = new Hashtable();
   
           while ((element = iterator.getNextElement()) != null) {
  -            if (element.getContentType() == null) {
  +            if ((element.getFileName() == null) && (element.getContentType() == null)) {
                   String textData;
                   try {
                       textData = new String(element.getData(), "ISO-8859-1");