You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by angeloimm <an...@libero.it> on 2004/12/15 10:22:28 UTC

Re:NOT-SOLVED....WHY?? Re: Cocoon File upload HELP

Hi.
Yes i have enable all; this is my cocoon-servlet configuration in web.xml:
  <servlet>
    <servlet-name>Cocoon</servlet-name>
    <display-name>Cocoon</display-name>
    <description>Cocoon</description>
    <servlet-class>org.apache.cocoon.servlet.CocoonServlet</servlet-class>
    <init-param>
      <param-name>init-classloader</param-name>
      <param-value>false</param-value>
    </init-param>
    <init-param>
      <param-name>configurations</param-name>
      <param-value>/WEB-INF/cocoon.xconf</param-value>
    </init-param>
    <init-param>
      <param-name>logkit-config</param-name>
      <param-value>/WEB-INF/logkit.xconf</param-value>
    </init-param>
    <init-param>
      <param-name>servlet-logger</param-name>
      <param-value>access</param-value>
    </init-param>
    <init-param>
      <param-name>cocoon-logger</param-name>
      <param-value>core</param-value>
    </init-param>
    <init-param>
      <param-name>log-level</param-name>
      <param-value>WARN</param-value>
    </init-param>
    <init-param>
      <param-name>allow-reload</param-name>
      <param-value>no</param-value>
    </init-param>
    <init-param>
      <param-name>load-class</param-name>
      <param-value>org.hsqldb.jdbcDriver</param-value>
    </init-param>
    <init-param>
      <param-name>enable-uploads</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>upload-directory</param-name>
      <param-value>XPDL</param-value>
    </init-param>
    <init-param>
      <param-name>autosave-uploads</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>overwrite-uploads</param-name>
      <param-value>rename</param-value>
    </init-param>
    <init-param>
      <param-name>manage-exceptions</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

This is my form definition:

<?xml version="1.0"?>

<fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition" xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
  <fd:widgets>

    <fd:field id="user" required="false">
      <fd:datatype base="string"/>
      <fd:label>Inserire il file XPDL da uploadare</fd:label>
    </fd:field>

    <fd:upload id="upload" mime-types="text/xml" required="true">
      <fd:label>File da uploadare</fd:label>
      <fd:hint>Scegliere un file di tipo XPDL o XML</fd:hint>
    </fd:upload>

  </fd:widgets>
</fd:form>

This is my Template:

<?xml version="1.0"?>
<page xmlns:jx="http://apache.org/cocoon/templates/jx/1.0" xmlns:ft="http://apache.org/cocoon/forms/1.0#template" xmlns:fi="http://apache.org/cocoon/forms/1.0#instance">
    <jx:import uri="resource://org/apache/cocoon/forms/generation/template.jx"/>
  <title>Upload XPDL/XML file</title>
  <content>
    <para>Scegliere il descrittore XML o XPDL che si vuole caricare</para>
    <ft:form-template action="#{$cocoon/continuation/id}.kont" method="POST" enctype="multipart/form-data">
      <table>
        <tr>
          <td valign="top">
            <ft:widget-label id="user"/>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <ft:widget-label id="upload"/>
          </td>
          <td valign="top">
            <ft:widget id="upload">
              <fi:upload/>
            </ft:widget>
          </td>
        </tr>
      </table><br/>
      <input type="submit" value="Upload"/>
    </ft:form-template>
  </content>
</page>

and this is my flow script:


function upload() {

    var log = Logger.getLogger( "it.eng.nikko.workflow.upload.js" );
    log.info( "Sono quì" );
    var form = new Form("forms/uploadForm.xml");
    var k = form.showForm("uploadFile.jx");
    log.info( "Starting upload......" );
    //k.invalidate();
  var uploadWidget = form.lookupWidget("upload");
  log.info( "Ho ottenuto: ["+uploadWidget+"]" );
  log.info( "uploadWidget.getValue(): "+ uploadWidget.getValue() );
  log.info( "uploadWidget.value: "+ uploadWidget.value );
    var content = handleUpload(form);
    var fileName = form.lookupWidget("upload").getValue().getHeaders().get("filename");

    log.info( "Upload finished....." );

    cocoon.sendPage("uploadSuccess.jx",
        {
            uploadContent: content,
            filename: fileName
        }
    );
}

function handleUpload(form) {

  var log = Logger.getLogger( "it.eng.nikko.workflow.upload.js" );
  log.info( "handleUpload" );
  var buf = new java.lang.StringBuffer();

  var uploadWidget = form.lookupWidget("upload");
  log.info( "uploadWidget.getValue(): "+ uploadWidget.getValue() );
  log.info( "uploadWidget.value: "+ uploadWidget.value );
  if (uploadWidget.getValue() != null) {
  log.info( "in if" );
    var realPath = java.lang.System.getProperty( "realPath" );
    var dir = new java.io.File( realPath+"/procDef/" );
    if( !dir.exists() ){

      dir.mkdirs();
    }
    var myFile = new java.io.File( dir,  getFileName( uploadWidget.getValue() ) );
    var writer = new java.io.PrintWriter ( new java.io.FileOutputStream( myFile ) );
    var stream = uploadWidget.getValue().getInputStream();

    var reader = new java.io.BufferedReader(new java.io.InputStreamReader(stream));

    var line;
    while ((line=reader.readLine())!=null){

       buf.append(line).append("\n");
       writer.println( line );
    }

    reader.close();
    writer.close();
    UploadXPDL.doUpload( myFile );
  }else{

    log.info( "Era nullo" );
  }

  return buf.toString();
}

function getFileName( path ){

   var strTok = new java.util.StringTokenizer( path,"/" );
   var workFlowFile = null;
   while( strTok.hasMoreTokens() ){

     var token = strTok.nextToken();
     if( ( token.indexOf( ".xml" ) > -1 ) || ( token.indexOf( ".xpdl" ) > -1 ) ){
       workFlowFile = token;
     }
   }
   return workFlowFile;
}

I have started from cocoon samples. The proble is that even if i choose a file .xml the content of my input is null so i have a null pointer exception.. i really don't understand why.

---------- Initial Header -----------

>From      : "Johannes Textor" jc.textor@gmx.de
To          : users@cocoon.apache.org
Cc          : 
Date      : Wed, 15 Dec 2004 09:34:20 +0100
Subject : Re: Cocoon File upload HELP

> did you enable file uploads in web.xml and set the upload path 
> accordingly ?
> 
> angeloimm wrote:
> 
> >Hi... first of all thanks for your help.
> >I have tried to do what you said but i have always that error..... any ither ideas?
> >Thanks
> >
> >---------- Initial Header -----------
> >
> >>From      : "Mark Lundquist" ml@wrinkledog.com
> >To          : users@cocoon.apache.org
> >Cc          : 
> >Date      : Tue, 14 Dec 2004 13:57:50 -0800
> >Subject : Re: Cocoon File upload HELP
> >
> >  
> >
> >>On Dec 14, 2004, at 9:43 AM, angeloimm wrote:
> >>
> >>    
> >>
> >>>            <ft:widget id="upload">
> >>>              <fi:upload />
> >>>            </ft:widget>
> >>>      
> >>>
> >>Hi,
> >>
> >>Get rid of that <fi:upload/>.
> >>
> >>cheers,
> >>Mark
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> >>For additional commands, e-mail: users-help@cocoon.apache.org
> >>
> >>
> >>    
> >>
> >
> >
> >
> >____________________________________________________________
> >Libero ADSL: 3 mesi gratis e navighi a 1.2 Mega, senza costi di attivazione.
> >Abbonati subito su http://www.libero.it
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> >For additional commands, e-mail: users-help@cocoon.apache.org
> >
> >
> >  
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
> 
> 



____________________________________________________________
Libero ADSL: 3 mesi gratis e navighi a 1.2 Mega, senza costi di attivazione.
Abbonati subito su http://www.libero.it



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: NOT-SOLVED....WHY?? Re: Cocoon File upload HELP

Posted by Johannes Textor <jc...@gmx.de>.
angeloimm wrote:

>Hi.
>Yes i have enable all; this is my cocoon-servlet configuration in web.xml:
>  <servlet>
>    <init-param>
>      <param-name>enable-uploads</param-name>
>      <param-value>true</param-value>
>    </init-param>
>    <init-param>
>      <param-name>upload-directory</param-name>
>      <param-value>XPDL</param-value>
>    </init-param>
>    <init-param>
>      <param-name>autosave-uploads</param-name>
>      <param-value>true</param-value>
>    </init-param>
>    <init-param>
>      <param-name>overwrite-uploads</param-name>
>      <param-value>rename</param-value>
>    </init-param>
>  
>

 does the directory XPDL exist in your webapp root ? is it writeable by 
the servlet ?

try setting upload-directory to an absolute path which is writable. then 
check if
your file is placed there by cocoon.

also, please send the html code of the overall generated form.

Regards,
Johannes

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org