Hi,

I tried a few things already, but did not get it to work so far.

At first I created a new site, which contains:
[{FormSet form='searchForm'}]
[{FormOpen form='searchForm'}]
[{FormInput type='file' name='searchInput'}]

[{FormInput type='submit' name='submit' value='Submit'}]
[{FormClose}]
[{FormOutput form='searchForm' handler='MyTest2'}]

Thus there is only a form where you can upload your data.

The Plugin contains the following code (at this time really simple, just to check if it works):
public class MyTest2 implements WikiPlugin {

   @Override
public String execute(WikiContext context, Map params) throws PluginException { HttpServletRequest request = context.getHttpRequest();
       boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// Create a factory for disk-based file items
       FileItemFactory factory = new DiskFileItemFactory();

       // Create a new file upload handler
       ServletFileUpload upload = new ServletFileUpload(factory);

       // Parse the request
       List<FileItem> items = null;
       try {
           items = upload.parseRequest(request);
       } catch (Exception e) {
           // TODO Auto-generated catch block
           return "BUG";
       }
       return "Works";
   }
}

So far I always get the "BUG" output when I choose a file and hit the submitbutton. One problem could be that when I take a look at the produced HTML code, the form is introduced with:

<form action="Wiki.jsp?page=MyTest" name="searchForm" accept-charset="UTF-8" method="post" 
enctype="application/x-www-form-urlencoded">

I think it should be the enctype: multipart/form-data
But I don't know if that is the point.

Any other ideas?

Best regards
Benedikt





Harry Metske schrieb:
my previous answer was a bit too much in a hurry....

first your compile, Eclipse tells you there is no method getHttpRequest for
a wiki context, that is strange, looking at the source it does have it :

........
    /**
     *  If the request did originate from a HTTP request,
     *  then the HTTP request can be fetched here.  However, it the request
     *  did NOT originate from a HTTP request, then this method will
     *  return null, and YOU SHOULD CHECK FOR IT!
     *
     *  @return Null, if no HTTP request was done.
     *  @since 2.0.13.
     */
    public HttpServletRequest getHttpRequest()
    {
        return m_request;
    }
.......

and if you can't compile it, I shouldn't even try to run it.
Maybe you can reply the complete source of your plugin ?

regards,
Harry

2008/10/8 Benedikt Mohrmann <[EMAIL PROTECTED]>

Hi,

thanks for your answer- I already had a look at commons fileupload.
But the problem is, when I use:

HttpServletRequest request = context.getHttpRequest();

JSPWiki tells me

HttpServletRequest cannot be resolved to a type
  The type javax.servlet.http.HttpServletRequest cannot be resolved.

In addition I am implementing my plugin in Eclipse and it tells me that
there is no method getHttpRequest for a wiki context.

Best regards
Benedikt




Harry Metske schrieb:

 Benedikt,
in your plugin you have access to the HttpServletRequest (
HttpServletRequest request = context.getHttpRequest(); ) .
Once you have this, I think you can use many samples/tools to handle the
uploaded file, but maybe the best one is commons fileupload (
http://commons.apache.org/fileupload/using.html), this binary jar is
already
in the JSPWiki distribution.

regards,
Harry

2008/10/7 Benedikt Mohrmann <[EMAIL PROTECTED]>



Hi,

my intention is to upload a file via JSPWiki, but not as an attachment.

I am trying to upload a file, thus I created a form containing a file
chooser and a submitbutton.
The goal is, that the input file is transferred to the server and then
handled by a plugin I wrote.

The plugin just puts the file as a Serializable into a database (which
already works, when I read a file from my harddisk).
But I am not yet not able to transfer the content of the file as a stream
or something like that.

Any experiences how this could work?

Best regards
Benedikt










Reply via email to