Hi, You can use an action to move the attachment to where you want. Here's how:
http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=101878098524370&w=2 Jeroen ----- Original Message ----- From: "Chitharanjan Das" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, June 12, 2002 12:32 AM Subject: RE: Vadim : RE: XSP Upload example - I do not understand > > 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]> > --------------------------------------------------------------------- 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]>