2016-04-21 20 views
0

Ich verwende derzeit Wicket und ein jQuery-Plugin zum Zuschneiden von Bildern ("croppic") und es muss mit Ajax mein Back-End anfordern, um das Bild zu beschneiden. Die Daten werden in einem mehrteiligen Format gesendet.Zugriff auf mehrteilige Formulardaten in Wicket Ajax Verhalten

Mein Wicket Back-End ist ein Ajax-Verhalten mit der "onRequest" -Methode und ich weiß nicht, wie die mehrteiligen Daten abgerufen werden.

Dieser Code hat nur Zugriff auf klassische POST-Variablen, kann jedoch nicht zum Formatieren von Formulardaten verwendet werden (Werte sind leer).

Wissen Sie, wie Sie dafür vorgehen?

PS: Dieser Thread ist hilfreich, aber nicht für mich verständlich: Wicket 6 - Capturing HttpServletRequest parameters in Multipart form?

Der Körper Nutzlast:

------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgUrl" 

https://scontent.xx.fbcdn.net/hprofile-xpf1/t31.0-  1/c0.0.1536.1536/13055008_225242101175595_5770204993752392511_o.jpg 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgInitW" 

1536 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgInitH" 

1536 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgW" 

500 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgH" 

500 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgY1" 

etc ...

Antwort

1

Versuchen mit:

WebRequest webRequest = (WebRequest) cycle.getRequest(); 
MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(getMaxSize(), "ignored"); 
multiPartRequest.parseFileParts(); 
IRequestParameters params = multiPartRequest.getRequestParameters(); 
+0

Danke für deine Antwort, aber ich habe nicht die getMaxSize() Methode ... – christophedebatz

+0

Sie meine Antwort akzeptieren. –

0

Hier ist mein abschließender Code, der funktioniert ... sehr hässlich, aber es funktioniert einwandfrei.

@Override 
public void onRequest() { 
    boolean hasError = false; 
    IRequestParameters parameters = null; 
    RequestCycle cycle = RequestCycle.get(); 
    ServletWebRequest webRequest = (ServletWebRequest) cycle.getRequest(); 

    try { 
     MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(Bytes.kilobytes(10), "ignored"); 
     multiPartRequest.parseFileParts(); 
     parameters = multiPartRequest.getRequestParameters(); 

    } catch (FileUploadException e) { 
     hasError = true; 
    } 

Danach können Sie einfach anrufen:

parameters.getParameterValue("you_param");