*** empty log message ***
[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   String                fileContentType=null;
27
28   public WebdbMultipartRequest(HttpServletRequest theReq) throws IOException
29   {
30     req=theReq;
31     mp = new MultipartParser(req, 1024*8192); // maximum eight megabyte
32     _evaluateRequest();
33   }
34
35
36   public HashMap getParameters(){
37     return parameters;
38   }
39
40   public byte[] getMedia() {
41     return uploadData;
42   }
43
44   public String getFilename() {
45     return fileName;
46   }
47   
48   public String getContentType() {
49     return fileContentType;
50   }
51
52   private void _evaluateRequest() throws IOException{
53
54     Part part;
55     while ((part = mp.readNextPart()) != null) {
56       String name = part.getName();
57       if (part.isParam()) {
58         // It's a parameter part, add it to the vector of values
59         ParamPart paramPart = (ParamPart) part;
60         String value = paramPart.getStringValue();
61         parameters.put(name,value);
62       }
63       else if (part.isFile()) {
64         // nur das erste uploadfile beruecksichtigen
65         FilePart filePart = (FilePart) part;
66         fileName = filePart.getFileName();
67         fileContentType = filePart.getContentType();
68         if (fileName != null) {
69           ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
70           filePart.writeTo(byteStream);
71           uploadData=byteStream.toByteArray();
72         }
73       }
74     } // while */
75   }
76 }