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]>

Reply via email to