Benedikt, I think JSPWiki should offer the option to specify the enctype for the form, as I suggested yesterday. Can you file a JIRA issue ( https://issues.apache.org/jira/browse/JSPWIKI ) for this ?
regards, Harry 2008/10/10 Benedikt Mohrmann <[EMAIL PROTECTED]> > Hi, > > just checked it again. > The problem is definetely the form: > org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: > the request doesn't contain a multipart/form-data or multipart/mixed stream, > content type header is application/x-www-form-urlencoded > > Pretty bad that you can not change the enctype. > In the Wiki Src it is: > tag.append( "\" method=\""+method+"\" > enctype=\"application/x-www-form-urlencoded\">\n" ); > > Can't I just change this? > > Another way could be to write a plugin with the following code (snippet): > returnStringBuffer.append("<div class=\"wikiform\">"); > returnStringBuffer.append("<form action=\"Wiki.jsp?page=MyTest\" > name=\"uploadForm\" accept-charset=\"UTF-8\" method=\"post\" > enctype=\"multipart/form-data\">"); > returnStringBuffer.append("<input type=\"hidden\" name=\"formname\" > value=\"uploadForm\"/>"); > returnStringBuffer.append("<input name=\"nbz_Datei\" > type=\"file\"><input type=\"submit\" name=\"nbz_upload\" id=\"upload\" > value=\"Hochladen\" />"); > returnStringBuffer.append("</form></div>"); > > This would create a form, but how can I tell the Wiki which plugin to use, > when the button is hit? > > Regards > Benedikt > > > Janne Jalkanen schrieb: > >> >> 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 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >> >