Initial revision
[mir.git] / source / mir / misc / WebdbMultipartRequest.java
diff --git a/source/mir/misc/WebdbMultipartRequest.java b/source/mir/misc/WebdbMultipartRequest.java
new file mode 100755 (executable)
index 0000000..0fd0216
--- /dev/null
@@ -0,0 +1,70 @@
+package mir.misc;
+
+import java.util.*;
+import java.io.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import com.oreilly.servlet.multipart.*;
+import com.oreilly.servlet.*;
+
+/**
+ * Title:
+ * Description:
+ * Copyright:    Copyright (c) 2001
+ * Company:      Indymedia
+ * @author
+ * @version 1.0
+ */
+
+public class WebdbMultipartRequest
+{
+       HttpServletRequest    req=null;
+       HashMap               parameters = new HashMap();
+       MultipartParser       mp=null;
+       byte[]                uploadData=null;
+       String                fileName=null;
+
+       public WebdbMultipartRequest(HttpServletRequest theReq) throws IOException
+       {
+               req=theReq;
+               mp = new MultipartParser(req, 1024*8192); // maximum eight megabyte
+               _evaluateRequest();
+       }
+
+
+       public HashMap getParameters(){
+               return parameters;
+       }
+
+       public byte[] getMedia() {
+               return uploadData;
+       }
+
+       public String getFilename() {
+               return fileName;
+       }
+
+       private void _evaluateRequest() throws IOException{
+
+               Part part;
+               while ((part = mp.readNextPart()) != null) {
+                       String name = part.getName();
+                       if (part.isParam()) {
+                               // It's a parameter part, add it to the vector of values
+                               ParamPart paramPart = (ParamPart) part;
+                               String value = paramPart.getStringValue();
+                               parameters.put(name,value);
+                       }
+                       else if (part.isFile()) {
+                               // nur das erste uploadfile beruecksichtigen
+                               FilePart filePart = (FilePart) part;
+                               fileName = filePart.getFileName();
+                               if (fileName != null) {
+                                       ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
+                                       filePart.writeTo(byteStream);
+                                       uploadData=byteStream.toByteArray();
+                               }
+                       }
+               } // while */
+       }
+}