Initial revision
[mir.git] / source / mir / misc / WebdbMultipartRequest.java
1 package mir.misc;
2
3 import java.util.*;
4 import java.io.*;
5 import javax.servlet.*;
6 import javax.servlet.http.*;
7 import com.oreilly.servlet.multipart.*;
8 import com.oreilly.servlet.*;
9
10 /**
11  * Title:
12  * Description:
13  * Copyright:    Copyright (c) 2001
14  * Company:      Indymedia
15  * @author
16  * @version 1.0
17  */
18
19 public class WebdbMultipartRequest
20 {
21         HttpServletRequest    req=null;
22         HashMap               parameters = new HashMap();
23         MultipartParser       mp=null;
24         byte[]                uploadData=null;
25         String                fileName=null;
26
27         public WebdbMultipartRequest(HttpServletRequest theReq) throws IOException
28         {
29                 req=theReq;
30                 mp = new MultipartParser(req, 1024*8192); // maximum eight megabyte
31                 _evaluateRequest();
32         }
33
34
35         public HashMap getParameters(){
36                 return parameters;
37         }
38
39         public byte[] getMedia() {
40                 return uploadData;
41         }
42
43         public String getFilename() {
44                 return fileName;
45         }
46
47         private void _evaluateRequest() throws IOException{
48
49                 Part part;
50                 while ((part = mp.readNextPart()) != null) {
51                         String name = part.getName();
52                         if (part.isParam()) {
53                                 // It's a parameter part, add it to the vector of values
54                                 ParamPart paramPart = (ParamPart) part;
55                                 String value = paramPart.getStringValue();
56                                 parameters.put(name,value);
57                         }
58                         else if (part.isFile()) {
59                                 // nur das erste uploadfile beruecksichtigen
60                                 FilePart filePart = (FilePart) part;
61                                 fileName = filePart.getFileName();
62                                 if (fileName != null) {
63                                         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
64                                         filePart.writeTo(byteStream);
65                                         uploadData=byteStream.toByteArray();
66                                 }
67                         }
68                 } // while */
69         }
70 }