I think it is important to look into the cause... The stack trace
would be important, yes. There could be many things failing.
/Janne
On Oct 9, 2008, at 19:15 , Harry Metske wrote:
I think so too (multipart/form-data), but can you print the
stacktrace just
before returning " BUG" , maybe you'll get a clue then ?
The FormOpen class currently has a hardcoded
"application/x-www-form-urlencoded", I think this should be
parameterizable
with the current value as the default.
regards,
Harry
2008/10/9 Benedikt Mohrmann <[EMAIL PROTECTED]>
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