incubator-jspwiki-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benedikt Mohrmann <mohrm...@mail.upb.de>
Subject Re: VS: Re: Upload Question
Date Sat, 18 Oct 2008 16:01:22 GMT
Hi,

thanks for the answer.

Now I did the following:
First of all I modified my plugin, which creates me my uploadform:
        returnStringBuffer.append("<div class=\"wikiform\">");
        returnStringBuffer.append("<form action=\"MyServlet\" 
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=\"nbf_uploadInput\" 
type=\"file\" value=\"\" /><input type=\"submit\" 
name=\"nbf_uploadFile\" id=\"upload\" value=\"Hochladen\" />");
        returnStringBuffer.append("</form></div>");   
       
        return returnStringBuffer.toString();

Then I wrote a servlet called MyServlet and created a .jar file of it.
I put this jar file in the "classes" directory of the JSPWiki and 
modiefied the web.xml the following way:
Added:
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
  </servlet-mapping>

Now when I hit the submitbutton I get navigated to the page:
http://localhost:8080/JSPWiki/MyServlet

which seems to be wrong.

In addition I got the following error message on this page:


  HTTP Status 405 - HTTP method POST is not supported by this URL

------------------------------------------------------------------------

*type* Status report

*message* _HTTP method POST is not supported by this URL_

*description* _The specified HTTP method is not allowed for the 
requested resource (HTTP method POST is not supported by this URL).
_

What am I doing wrong so far?

Best regards
Benedikt




Janne Jalkanen schrieb:
>
> Ah yes, found the answer from the FAQ:
>
> "Why is parseRequest() returning no items?
>     This most commonly happens when the request has already been 
> parsed, or processed in some other way. Since the input stream has 
> aleady been consumed by that earlier process, it is no longer 
> available for parsing by Commons FileUpload. "
>
> Therefore, since JSPWiki has already parsed the request (e.g. by using 
> request.getParameter()), FileUpload can no longer parse the request 
> and therefore fails.  There is no way around this in a Plugin, I'm 
> afraid...
>
> The only option is probably to create your own Servlet and send the 
> request there.  Look how AttachmentServlet handles things, that should 
> help you to construct your own Servlet to handle your own upload.  If 
> you want to use WikiForms, you can use the "submit" -parameter of 
> FormOpen to point at your own servlet.
>
> /Janne
>
> On Oct 14, 2008, at 16:41 , Benedikt Mohrmann wrote:
>
>> Hi,
>>
>> I just tried another thing.
>> I wrote a second plugin which contains the following code:
>>    StringBuffer returnStringBuffer = new StringBuffer();
>>
>>    @Override
>>    public String execute(WikiContext context, Map params) throws 
>> PluginException {
>>                          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=\"nbf_uploadInput\" 
>> type=\"file\" value=\"\" /><input type=\"submit\" 
>> name=\"nbf_uploadFile\" id=\"upload\" value=\"Hochladen\" />");
>>        returnStringBuffer.append("</form></div>");                
>> return returnStringBuffer.toString();
>>    }
>>
>> }
>>
>> I integrated the plugin into a WikiPage and in addition the following:
>> [{FormOutput form='uploadForm' handler='MyPlugin'}]
>>
>> When I hit the button there happens nothing again.
>>
>> Now when I change the sourcecode an write
>> enctype=\"application/x-www-form-urlencoded\">" instead of 
>> enctype=\"multipart/form-data\">"
>>
>> everything works fine again.
>>
>> Something is definetely not able to handle the other format.
>>
>> Any ideas?
>>
>> Best regards
>> Benedikt
>>
>>
>>
>>
>> Benedikt Mohrmann schrieb:
>>> Hi,
>>>
>>> I definetely know that it is a problem with the MyFormOpenPlugin!!!
>>>
>>> No plugin gets activated, when I use the MyFormOpenPlugin.
>>>
>>> I just copied the FormOpen Plugin and changed the one line to get a 
>>> "multipart/form-data".
>>> In addition I deleted the following:
>>>    private static org.apache.log4j.Logger log =
>>>        org.apache.log4j.Logger.getLogger( MyFormOpen.class );
>>>
>>>   log.debug( "Previous FormInfo for this form was found in context." );
>>>
>>>
>>> But I don`t think that this can be the problem.
>>>
>>> Is there any other way to get out of this mysery?
>>>
>>> Best regards
>>> Benedikt
>>>
>>>
>>> Benedikt Mohrmann schrieb:
>>>> Hi,
>>>>
>>>> does anyone have a clue, how to solve this problem?
>>>>
>>>> Best regards
>>>> Benedikt
>>>>
>>>>
>>>> Benedikt Mohrmann schrieb:
>>>>> Hi,
>>>>>
>>>>> here is the resulting HTML code:
>>>>>
>>>>> <div class="wikiform">
>>>>> <form action="Wiki.jsp?page=MyTest" name="uploadForm" 
>>>>> accept-charset="UTF-8" method="post" enctype="multipart/form-data">
>>>>>  <input type="hidden" name="formname" value="uploadForm"/>
>>>>>
>>>>> <input name='nbf_uploadInput' type='file' value=''/>
>>>>>
>>>>> </p>
>>>>> <p />
>>>>> <p><input name='nbf_uploadFile' type='submit' value='Upload'/>
>>>>>
>>>>> </form>
>>>>> </div>
>>>>>
>>>>> Regards
>>>>> Benedikt
>>>>>
>>>>>
>>>>> Janne Jalkanen schrieb:
>>>>>> And could you also provide the HTML code resulting from this 
>>>>>> invocation?
>>>>>>
>>>>>> /Janne
>>>>>>
>>>>>> On 11 Oct 2008, at 20:37, Benedikt Mohrmann wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> the plugin should be activated by a click on the button.
>>>>>>>
>>>>>>> Here is the WikiPage
>>>>>>>
>>>>>>> [{FormSet form='uploadForm'}]
>>>>>>> [{MyFormOpen form='uploadForm'}]
>>>>>>> [{FormInput type='file' name='uploadInput'}]
>>>>>>>
>>>>>>>
>>>>>>> [{FormInput type='submit' name='uploadFile' value='Upload'}]
>>>>>>> [{FormOutput form='uploadForm' handler='MyPlugin'}]
>>>>>>> [{FormClose}]
>>>>>>>
>>>>>>> Best regards
>>>>>>> Benedikt
>>>>>>>
>>>>>>>
>>>>>>> Janne Jalkanen schrieb:
>>>>>>>>
>>>>>>>> And how do you use this on a page?
>>>>>>>>
>>>>>>>> /Janne
>>>>>>>>
>>>>>>>> On 11 Oct 2008, at 14:52, Benedikt Mohrmann wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> the plugin is quite easy:
>>>>>>>>> public class MyPlugin 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";
>>>>>>>>>        }
>>>>>>>>>              boolean empty = items.isEmpty();
>>>>>>>>>        String valueOf = String.valueOf(empty);
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>        return valueOf + "Works";
>>>>>>>>>    }
>>>>>>>>> }
>>>>>>>>>
>>>>>>>>> As I said, when I hit the submitButton nothing happens.
>>>>>>>>>
>>>>>>>>> Best regards
>>>>>>>>> Benedikt
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> jalkanen@ecyrd.com schrieb:
>>>>>>>>>> Hi!
>>>>>>>>>>
>>>>>>>>>> I think we might need to see the code. Can you post
it to the 
>>>>>>>>>> list, please?
>>>>>>>>>>
>>>>>>>>>> /janne
>>>>>>>>>>
>>>>>>>>>> -- alkuper. viesti --
>>>>>>>>>> Aihe: Re: Upload Question
>>>>>>>>>> Lähettäjä: Benedikt Mohrmann <mohrmann@mail.upb.de>
>>>>>>>>>> Päivämäärä: 11.10.2008 12:42
>>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I did all this.
>>>>>>>>>> The HTML output is how it should be, but the request
is not 
>>>>>>>>>> handled when I hit the button.
>>>>>>>>>>
>>>>>>>>>> The WikiSite:
>>>>>>>>>> [{FormSet form='uploadForm'}]
>>>>>>>>>> [{MyFormOpen form='uploadForm'}]
>>>>>>>>>> [{FormInput type='file' name='uploadInput'}]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> [{FormInput type='submit' name='uploadFile' value='Upload'}]
>>>>>>>>>> [{FormOutput form='uploadForm' handler='MyPlugin'}]
>>>>>>>>>> [{FormClose}]
>>>>>>>>>>
>>>>>>>>>> To test it I wrote a plugin which justs returns "Works".
>>>>>>>>>> Now when I switch to the normal FormOpen tag ([{FormOpen

>>>>>>>>>> form='uploadForm'}]) the output is "Works".
>>>>>>>>>> When I use my own one, there is no output.
>>>>>>>>>>
>>>>>>>>>> Any ideas, why this is not handled?
>>>>>>>>>>
>>>>>>>>>> Best regards
>>>>>>>>>> Benedikt
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Janne Jalkanen schrieb:
>>>>>>>>>>
>>>>>>>>>>> They are real plugins.
>>>>>>>>>>>
>>>>>>>>>>> I recommend that you copy FormOpen.java to MyFormOpen.java,

>>>>>>>>>>> rename the class, change the code, and then use

>>>>>>>>>>> [{MyFormOpen}] instead of [{FormOpen}] in the
plugins that 
>>>>>>>>>>> you need.
>>>>>>>>>>>
>>>>>>>>>>> You can easily write your own plugin which does
what you said:
>>>>>>>>>>>
>>>>>>>>>>> package whatever.package.you.use;
>>>>>>>>>>>
>>>>>>>>>>> public class MyPlugin implements WikiPlugin
>>>>>>>>>>> {
>>>>>>>>>>>    public String execute(WikiContext ctx, Map
params)
>>>>>>>>>>>    {
>>>>>>>>>>>           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=\"nbf_Datei\"

>>>>>>>>>>> type=\"file\"><input type=\"submit\" name=\"nbf_upload\"

>>>>>>>>>>> id=\"upload\" value=\"Hochladen\" />");
>>>>>>>>>>>
>>>>>>>>>>>       return returnStringBuffer.toString();
>>>>>>>>>>>     }
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> then use [{whatever.package.you.use.MyPlugin}]
on a 
>>>>>>>>>>> wikipage.  I don't know what it does, but it
is easy :-)
>>>>>>>>>>>
>>>>>>>>>>> /Janne
>>>>>>>>>>>
>>>>>>>>>>> On Oct 10, 2008, at 16:16 , Benedikt Mohrmann
wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> the problem is that the Forms are directly
in the 
>>>>>>>>>>>> JSPWiki.jar file.
>>>>>>>>>>>> Thus they are no real plugins I guess.
>>>>>>>>>>>> I tried to change the FormOpen.java and inserted
>>>>>>>>>>>>        tag.append( "\" method=\""+method+"\"

>>>>>>>>>>>> enctype=\"multipart/form-data\">\n" );
>>>>>>>>>>>> then build the class file and just put it
into the 
>>>>>>>>>>>> JSPWiki.jar.
>>>>>>>>>>>>
>>>>>>>>>>>> As a result all the other plugins which use
forms were not 
>>>>>>>>>>>> working correctly (that was of course clear).
>>>>>>>>>>>> But my Upload Plugin did not work, too.
>>>>>>>>>>>> When I hit the submit button nothing happened.
>>>>>>>>>>>>
>>>>>>>>>>>> Is there no possibility to insert a plugin
which creates 
>>>>>>>>>>>> HTML code the following way:
>>>>>>>>>>>>        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=\"nbf_Datei\" 
>>>>>>>>>>>> type=\"file\"><input type=\"submit\"
name=\"nbf_upload\" 
>>>>>>>>>>>> id=\"upload\" value=\"Hochladen\" />");
>>>>>>>>>>>>
>>>>>>>>>>>> Then just integrate the plugin into the WikiPage.
>>>>>>>>>>>>
>>>>>>>>>>>> And then put a second plugin via [{FormOutput

>>>>>>>>>>>> form='uploadForm' handler='MyPlugin'}] into
the WikiPage?
>>>>>>>>>>>>
>>>>>>>>>>>> At the moment this seems not to work, as
nothing happens 
>>>>>>>>>>>> when I click on the submit button.
>>>>>>>>>>>>
>>>>>>>>>>>> Best regards
>>>>>>>>>>>> Benedikt
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Janne Jalkanen schrieb:
>>>>>>>>>>>>
>>>>>>>>>>>>> Probably the quickest way for you now
is to simply make a 
>>>>>>>>>>>>> copy of the
>>>>>>>>>>>>> relevant Form plugin, name it something
else, and just 
>>>>>>>>>>>>> change the
>>>>>>>>>>>>> enctype.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Also please put in a JIRA request for
the enctype to be 
>>>>>>>>>>>>> changeable,
>>>>>>>>>>>>> and we'll snatch it in either 2.8.1 or
3.0.
>>>>>>>>>>>>>
>>>>>>>>>>>>> /Janne
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Oct 10, 2008 at 10:50:32AM +0200,
Benedikt 
>>>>>>>>>>>>> Mohrmann wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> 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
<mohrmann@mail.upb.de>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 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 <mohrmann@mail.upb.de>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> 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 <mohrmann@mail.upb.de>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>


Mime
View raw message