Thanks a million....
I understand it now... Let me try to clarify 1. Upload directory is read from init parameter. Hence it is kinda fixed . 2. We do not get the control of uploaded files. As soon as the Cocoon gets a request. The request is processed for Multipart request processing. Is this how it has to be processed ? The only way to change this is to provide my own version of multi-part request processing factory. However, the problem is that you can have utmost one kind of behaviour. 3. In my implementation, I need to store the files in different directories, depending upon the type of files uploaded. How do you suggest I go ant it... Thanks in advance, Chiths -----Original Message----- From: Vadim Gritsenko [mailto:[EMAIL PROTECTED]] Sent: Tuesday, June 11, 2002 1:18 PM To: [EMAIL PROTECTED] Subject: RE: Vadim : RE: XSP Upload example - I do not understand > From: Chitharanjan Das [mailto:[EMAIL PROTECTED]] > > Hello Vadim... > > If you might explain the upload functionality ....... > > 1. Form with multipart data is submitted to upload.xsp > 2. The form parameters have to be processed. I changed the form variable > name from uploaded_file to files and still it works. > 3. If I have to do additional processing like throw error if the file > exists or the file needs to be stored in a specific pattern say > $upload_directory/<date>/<user>/<filename>_uniqueId. How can I customize > it. Look into the source. Start with CocoonServlet: HttpServletRequest request = RequestFactory.getRequestFactory(requestFactoryClass).getServletRequest( req, CocoonServlet.SAVE_UPLOADED_FILES_TO_DISK, this.uploadDir, CocoonServlet.ALLOW_OVERWRITE, CocoonServlet.SILENTLY_RENAME, this.maxUploadSize); > 4. If there are additional form elements, how do I process them. > 5. Where is the upload functionality being invoked.. Its kind a vague > (for my intellect). >From the servlet, see line(s) above. Vadim > > Thanks in Advance, > Chiths > > > -----Original Message----- > From: Vadim Gritsenko [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, June 11, 2002 6:51 AM > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: RE: XSP Upload example - I do not understand > > > From: Stefan Riegel [mailto:[EMAIL PROTECTED]] > > > > Hello, everybody, > > > > I do not understand the XSP upload example. Yes, it works fine, but I > would > > like to understand as much as possible. I guess their is some "magic" > behind > > the scene. > > > > I did some reading of the API Javadoc, but I'am still not experienced > enough > > reading source code. What to do? Should I give up learning Cocoon :-( > > Try reading Java source code generated from the XSP. > > > > The example XSP-Source follows. I added comments about what I don't > > understand. > > > > > > <?xml version="1.0" encoding="ISO-8859-1"?> > > > > <!-- CVS: $Id: upload.xsp,v 1.3 2002/02/09 06:21:57 vgritsenko Exp $ > --> > > > > > > <!-- > > QUESTION: the namespace declarations for request, response and log are > > not used and could be omitted? Is this correct? > > --> > > If not used then can be omitted. > > > > <xsp:page language="java" > > xmlns:xsp="http://apache.org/xsp" > > xmlns:xsp-request="http://apache.org/xsp/request/2.0" > > xmlns:xsp-response="http://apache.org/xsp/response/2.0" > > xmlns:log="http://apache.org/xsp/log/2.0"> > > > > <xsp:structure> > > <!-- > > QUESTION: Same with the XSPUtil import. Am I right? > > --> > > Same. > > > > > <xsp:include>org.apache.cocoon.components.language.markup.xsp.XSPUtil</x > sp:i > > nclude> > > > > > <xsp:include>org.apache.avalon.framework.context.ContextException</xsp:i > nclu > > de> > > </xsp:structure> > > > > <!-- > > QUESTIONS: I do not understand this part. Who calls conceptualize? > > Contextualize. Avalon does. > See > http://jakarta.apache.org/avalon/framework/reference-the-lifecycle.html > > > > Where does context > > (org.apache.cocoon.generation.ServletGenerator.context?) > > come from? > > Avalon gives. > http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/context > /Context.html > > > > And the get method of context? > > See link above. > > > > Their must be some "build in" > > upload > > functionality, please explain if You are patient enough. > > Yes, there is. And it uses maybeupload library, or Multipart request > parser. See org.apache.cocoon.components.request package. > > Vadim > > > > --> > > <xsp:logic> > > File uploadDir = null; > > /** Contextualize this class */ > > public void contextualize(Context context) throws ContextException { > > uploadDir = (File) context.get(Constants.CONTEXT_UPLOAD_DIR); > > } > > </xsp:logic> > > > > <page> > > <title>This form allows you upload files</title> > > <content> > > <para> > > <form method="post" enctype="multipart/form-data" > > action="upload.xsp"> > > File: <input type="file" name="uploaded_file" size="50" /> > > <p><input type="submit" value="Upload File" /></p> > > </form> > > </para> > > <para> > > <ul> > > <xsp:logic> > > getLogger().debug("Dir=" + uploadDir); > > String[] filelist = uploadDir.list(); > > <![CDATA[ > > getLogger().debug("List=" + filelist.length); > > for (int i = 0; i < filelist.length; i++) { > > getLogger().debug("File [" + i + "]=" + filelist[i]); > > ]]> > > <li> > > <xsp:expr>filelist[i]</xsp:expr> > > </li> > > <![CDATA[ > > } > > ]]> > > </xsp:logic> > > </ul> > > </para> > > <para>Brought to you by Cocoon at <xsp:expr>new > > Date()</xsp:expr>.</para> > > > > </content> > > </page> > > </xsp:page> > > > > > > Thank You. > > > > Regards > > Stefan > > -- > > > > Stefan Riegel > > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> > > > > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>