Multipart requests are already parsed by Magnolia (using a filter) so
you don't usually need nothing more...

see info.magnolia.cms.beans.runtime.MultipartForm
you can use request.getAttribute(MultipartForm.REQUEST_ATTRIBUTE_NAME)
to retrieve the form parsed by magnolia and extract files and
parameter from there.


fabrizio



On 9/24/05, Alexandru Popescu <[email protected]> wrote:
> #: Adam Cooper changed the world a bit at a time by saying on  9/23/2005 5:40 
> PM :#
> > Fellow Magnolia Users,
> >
> > Has anyone had any success using the Jakarta Commons FileUpload library with
> > Magnolia.  I am using Magnolia 2.1 with the standard version of Tomcat that
> > came with it.  I can get a file to successfully upload when I put my
> > uploadForm.jsp and upload.jsp in the ROOT webapps folder, but when I put it
> > anywhere inside the magnolia author area the files in the multipart request
> > are not found when it has been parsed.  It almost seem like it is getting a
> > different type of request alltogether when displaying magnolia pages than it
> > is when the JSP is running as a basic tomcat one.
> >
> > What I am trying to do is add a file upload tab to admincentral in order to
> > give my authors a place to upload pdfs, docs, ppts, etc to a centralized
> > place.  Basically, so that they can change their files in one place and have
> > those changes reflected in all the pages that link to these documents.  I
> > have modified the adminCentral menu to incorporate the button and it
> > basically just sticks a JSP of my choosing in that right iframe.
> >
> > Here is uploadForm.jsp:
> >
> > <jsp:root version="1.2" xmlns:jsp = "http://java.sun.com/JSP/Page";>
> >       <jsp:directive.page contentType="text/html; charset=UTF-8" />
> >       <![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> ]]>
> >       <html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en" lang="en">
> >               <head>
> >                       <title>File Upload</title>
> >                       <meta http-equiv="Content-Type" content="text/html; 
> > charset=UTF-8" />
> >               </head>
> >               <body>
> >                       <h1>File Upload</h1>
> >                       <h2>Upload files to a centralized location</h2>
> >                       <hr/>
> >                       <form method="post" action="upload.jsp" 
> > enctype="multipart/form-data">
> >                               Name: <input type="text" name="uname"/>
> >                               File: <input type="file" name="upfile"/>
> >                               <input type="submit"/>
> >                       </form>
> >               </body>
> >       </html>
> > </jsp:root>
> >
> > Here is upload.jsp:
> >
> > <jsp:root version="1.2" xmlns:jsp = "http://java.sun.com/JSP/Page";>
> >       <jsp:directive.page import="org.apache.commons.fileupload.*"/>
> >       <jsp:directive.page import="java.io.File" />
> >       <jsp:directive.page import="java.util.*" />
> >       <jsp:directive.page contentType="text/html; charset=UTF-8" />
> >       <![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";> ]]>
> >       <html>
> >       <head><title>Upload Result</title></head>
> >               <body>
> >                       <jsp:scriptlet>
> >                               <![CDATA[
> >                                       try {
> >                                               out.println("<p>request = " + 
> > request.getClass().toString() + "</p>");
> >                                               FileUpload fup=new 
> > FileUpload();
> >                                               boolean isMultipart = 
> > FileUpload.isMultipartContent(request);
> >                                               out.println("<p>request has 
> > multipart = " + isMultipart + "</p>");
> >                                               // Create a new file upload 
> > handler
> >                                               DiskFileUpload upload = new 
> > DiskFileUpload();
> >                                               // Parse the request
> >                                               List items = 
> > upload.parseRequest(request);
> >                                               Iterator iter = 
> > items.iterator();
> >                                               if (!iter.hasNext()) {
> >                                                       out.println("<p>no 
> > request info found!</p>");
> >                                               }
> >                                               while (iter.hasNext()) {
> >                                                       FileItem item = 
> > (FileItem) iter.next();
> >                                                       if 
> > (item.isFormField()) {
> >                                                               
> > out.println("<p>found a field: " + item.getString() + "</p>");
> >                                                       } else {
> >                                                               
> > out.print("<p>found a file: " + item.getName());
> >                                                               File cfile = 
> > new File(item.getName());
> >                                                               File tosave = 
> > new File(getServletContext().getRealPath("/") +
> > "fileupload/dumpage/",cfile.getName());
> >                                                               
> > item.write(tosave);
> >                                                       }
> >                                               }
> >                                               
> > out.println("<p><strong>done.</strong></p>");
> >                                       } catch (Exception e){
> >                                               System.out.println(e);
> >                                       }
> >                               ]]>
> >                       </jsp:scriptlet>
> >               </body>
> >       </html>
> > </jsp:root>
> >
> > Here is the output when I view the JSP in
> > %tomcat_dir%/webapps/ROOT/fileupload/
> >
> >       request = class org.apache.coyote.tomcat5.CoyoteRequestFacade
> >       request has multipart = true
> >       found a field: meh
> >       found a file: ATM_POS_Map.jpg
> >       done.
> >
> > As you can see it parses the request fine and finds the file.  It gets it 
> > and
> > everything is absolutely lovey dovey.
> >
> > Here is the output when I view the JSP in
> > %tomcat_dir%/webapps/author/admintemplates/fileupload/
> > (note: I have a virtualuri mapper pointing
> > from /.magnolia/fileupload/uploadForm.html
> > to /admintemplates/fileupload/uploadForm.jsp
> > and from /.magnolia/fileupload/uploadForm.html
> > to /admintemplates/fileupload/upload.jsp)
> >
> >       request = class org.apache.catalina.core.ApplicationHttpRequest
> >       pageContext.request = class 
> > org.apache.catalina.core.ApplicationHttpRequest
> >       request has multipart = true
> >       no request info found!
> >       done.
> >
> > No such luck here.
> >
> > Can anyone enlighten me as to why the class types for the two HttpRequests 
> > are
> > different and if there is any way to get hold of the original request? I
> > profusely apologize for the longwinded email.  Thanks in advance to any help
> > you guys can offer.  If you don't have a copy of the Jarkarta Commons
> > FileUpload library and would like to take a crack at this, it can be 
> > obtained
> > here: http://jakarta.apache.org/commons/fileupload/
> >
> > Regards,
> > Adam Cooper
> > Talisen Technologies
> > [EMAIL PROTECTED]
> >
>
> It looks like when dispatched the request is cleaned of any additional 
> parameters. Probably you
> should try to debug and see what is happening when the request dispatched.
>
> If you let me know what else you have done maybe I can try to find out too 
> ;-).
>
> ./alex
> --
> .the_mindstorm.
>
> >
> >
> >
> > ----------------------------------------------------------------
> > for list details see
> > http://www.magnolia.info/en/magnolia/developer.html
> > ----------------------------------------------------------------
> >
>
> ----------------------------------------------------------------
> for list details see
> http://www.magnolia.info/en/magnolia/developer.html
> ----------------------------------------------------------------
>

----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/magnolia/developer.html
----------------------------------------------------------------

Reply via email to