Changeset 6785dcb675da16292270d5924f3de13a142e7dd9

Show
Ignore:
Timestamp:
11/26/06 12:18:55 (2 years ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1164539935 +0100
git-parent:

[fc23677a93852d6b881f0c5a66e563e4fd7408a3]

git-author:
Christopher Jung <bktheg@web.de> 1164539935 +0100
Message:

Support fuer Multipart-Requests eingebaut

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/framework/CmdLineRequest.java

    r4f0c647 r6785dcb  
    2121import java.io.IOException; 
    2222import java.io.InputStream; 
     23import java.util.ArrayList; 
    2324import java.util.HashMap; 
     25import java.util.List; 
    2426import java.util.Map; 
     27 
     28import org.apache.commons.fileupload.FileItem; 
    2529 
    2630import net.driftingsouls.ds2.server.framework.pipeline.Request; 
     
    116120        } 
    117121 
     122        public List<FileItem> getUploadedFiles() { 
     123                return new ArrayList<FileItem>(); 
     124        } 
     125 
    118126} 
  • src/net/driftingsouls/ds2/server/framework/pipeline/HttpRequest.java

    rae09dfe r6785dcb  
    2121import java.io.IOException; 
    2222import java.io.InputStream; 
     23import java.util.ArrayList; 
    2324import java.util.HashMap; 
     25import java.util.List; 
    2426import java.util.Map; 
    2527 
    2628import javax.servlet.http.HttpServletRequest; 
     29 
     30import net.driftingsouls.ds2.server.framework.Loggable; 
     31 
     32import org.apache.commons.fileupload.FileItem; 
     33import org.apache.commons.fileupload.FileItemFactory; 
     34import org.apache.commons.fileupload.FileUploadBase; 
     35import org.apache.commons.fileupload.FileUploadException; 
     36import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
     37import org.apache.commons.fileupload.servlet.ServletFileUpload; 
     38import org.apache.commons.fileupload.servlet.ServletRequestContext; 
    2739 
    2840/** 
     
    3143 * 
    3244 */ 
    33 public class HttpRequest implements Request
     45public class HttpRequest implements Request,Loggable
    3446        private HttpServletRequest request = null; 
    3547        private Map<String,String> parameters = new HashMap<String,String>(); 
     48        private boolean isMultipart = false; 
     49        private ServletRequestContext context = null; 
     50        private List uploadedFiles = null; 
    3651         
    3752        public HttpRequest(HttpServletRequest request) { 
    3853                this.request = request; 
     54                 
     55                context = new ServletRequestContext(request); 
     56                isMultipart = FileUploadBase.isMultipartContent(context); 
     57                if( isMultipart ) { 
     58                        FileItemFactory factory = new DiskFileItemFactory(); 
     59                        ServletFileUpload upload = new ServletFileUpload(factory); 
     60 
     61                        try { 
     62                                uploadedFiles = upload.parseRequest(context); 
     63                                for( int i=0; i < uploadedFiles.size(); i++ ) { 
     64                                        FileItem item = (FileItem)uploadedFiles.get(i); 
     65                                        if( !item.isFormField() ) { 
     66                                                continue; 
     67                                        } 
     68                                    parameters.put(item.getFieldName(), item.getString()); 
     69                                } 
     70                        } 
     71                        catch( FileUploadException e ) { 
     72                                LOG.error(e); 
     73                        } 
     74                } 
    3975        } 
    4076 
     
    110146                return str; 
    111147        } 
     148 
     149        public List<FileItem> getUploadedFiles() { 
     150                if( !isMultipart ) { 
     151                        return new ArrayList<FileItem>(); 
     152                } 
     153                 
     154                List<FileItem> result = new ArrayList<FileItem>(); 
     155                List items = uploadedFiles; 
     156                for( int i=0; i < items.size(); i++ ) { 
     157                        if( items.get(i) instanceof FileItem ) { 
     158                                FileItem item = (FileItem)items.get(i); 
     159                                if( item.isFormField() ) { 
     160                                        continue; 
     161                                } 
     162                                result.add((FileItem)items.get(i)); 
     163                        } 
     164                } 
     165                         
     166                return result; 
     167        } 
    112168} 
  • src/net/driftingsouls/ds2/server/framework/pipeline/Request.java

    rae09dfe r6785dcb  
    2121import java.io.IOException; 
    2222import java.io.InputStream; 
     23import java.util.List; 
     24 
     25import org.apache.commons.fileupload.FileItem; 
    2326 
    2427/** 
     
    4245        public String getRequestURL(); 
    4346        public String getUserAgent(); 
     47        public List<FileItem> getUploadedFiles(); 
    4448}