Thanks for your advice, I've changed it, but i still don't get a file. Ik
think the problem is there's no file in the directory
C;\jakarta-tomcat-4.1.12\work\Standalone\localhost\forms\cocoon-files\upload
. Should it be there?

Cheers,
Robert

-----Original Message-----
From: Geoff Howard [mailto:[EMAIL PROTECTED]
Sent: dinsdag 15 juli 2003 15:43
To: [EMAIL PROTECTED]
Subject: Re: upload problem


See the corrected line below in your action:

Robert Kromkamp wrote:
> Hi,
>
> I'm trying to upload an image with Cocoon. But when i'm trying to read the
> parameters of the file in my Action it seems to be an String. What did I
do
> wrong?
>
> I've the following form:
>
> addresidence.xml
> ===================
> <form action="addresidence.html" enctype="multipart/form-data">
>     <tr>
>         <td>
>             <input type="file" name="uploadfile" size="50"/>
>             <input type="submit"/>
>         </td>
>     </tr>
> </form>
> ===================
>
>
>
> web.xml
> ===================
>     <init-param>
>       <param-name>enable-uploads</param-name>
>       <param-value>true</param-value>
>     </init-param>
> ===================
>
>
>
> myAction.java (extends AbstractXMLFormAction implements FormListener)
> ===================
> import org.apache.cocoon.acting.AbstractXMLFormAction;
> import org.apache.cocoon.components.xmlform.Form;
> import org.apache.cocoon.components.xmlform.FormListener;
> import org.apache.cocoon.servlet.multipart.Part;
>
> .....
>
>
> HashMap parameters = new HashMap();
>
> Enumeration parametersEnum = getRequest().getParameterNames();
> System.out.println("Voor de while");
> while( parametersEnum.hasMoreElements() ){
>     String name = (String)parametersEnum.nextElement();
>     Object value = getRequest().getParameter( name );

No, getParameter returns a String.  you need:

   Object value = getRequest().get(name);

>
>     System.out.println("Voor instanceof");
>     System.out.println("instance of: "+value.getClass().getName());
>     System.out.println("instance package:
"+value.getClass().getPackage());
>     System.out.println("instance to string: "+value.toString());
>     if (value instanceof Part) {
>        System.out.println("Part");
>     }
>     parameters.put( name, value );
> }
>
> ===================
>
>
>
>
> sitemap.xmap
> ===================
>
> <map:pipeline>
>     <map:match pattern="">
>          <map:redirect-to uri="overview.html"/>
>     </map:match>
>
>     <map:match pattern="wml/">
>         <map:redirect-to uri="../overview.wml"/>
>     </map:match>
>
>     <map:match pattern="overview.html">
>         <map:read src="overview.html"/>
>     </map:match>
>
>     <map:match pattern="overview.wml">
>         <map:read src="overview.wml"/>
>     </map:match>
>
>     <map:match pattern="img/*.gif">
>         <map:read src="img/{1}.gif" mime-type="image/gif"  />
>     </map:match>
>
>     <map:match pattern="img/*.jpg">
>         <map:read src="img/{1}.jpg" mime-type="image/jpg"  />
>     </map:match>
>
>     <map:match pattern="stylesheets/css/*.css">
>         <map:read src="stylesheets/css/{1}.css" mime-type="text/css "  />
>     </map:match>
> </map:pipeline>
>
> <map:pipeline>
>   <map:match pattern="addresidence.*">
>       <map:act type="request">
>               <map:parameter name="parameters" value="true"/>
>             <map:act type="MyAction">
>                       <map:generate src="upload.html"/>
>                       <map:serialize type="html" label="debug"/>
>               </map:act>
>       </map:act>
>   </map:match>
> </map:pipeline>
> ===================
>
>
> I get the following output of my program:
> -----
> Voor de while
> Voor instanceof
> instance of: java.lang.String
> instance package: package java.lang, Java Platform API Specification,
> version 1.4
> instance to string:
>
C:\jakarta-tomcat-4.1.12\work\Standalone\localhost\forms\cocoon-files\upload
> -dir\group-logo.gif
> -----
>
> As you can see it's an instance of a String, but I expected an instance of
a
> Part. Can someone explain this?
>
> When I look in the directory
>
C:\jakarta-tomcat-4.1.12\work\Standalone\localhost\forms\cocoon-files\upload
> -dir\ there's no file available. What do I do wrong? Has it something to
> with AbstractXMLFormAction? I'm deploying under tomcat. Do I've to change
> some settings of it?
>
> Many thanks for your time!
>
> Kind regards,
> Robert Kromkamp


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to