我目前正在使用Wicket和jQuery插件来裁剪图片(" croppic")并且需要使用ajax我的后端来裁剪图片。数据以多部分格式发送。
My Wicket后端是" onRequest"的一个Ajax行为。方法,我不知道如何检索多部分数据。
@Override
public void onRequest() {
String json = "{}";
boolean hasError = false;
RequestCycle cycle = getComponent().getRequestCycle();
IRequestParameters parameters = cycle.getRequest().getPostParameters();
此代码只能访问经典的POST变量,但不能用于多部分表单数据(值为空)。
你知道怎么做吗?
PS:这个帖子很有用,但对我来说不可理解:Wicket 6 - Capturing HttpServletRequest parameters in Multipart form?
身体有效负载:
------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"
等...
答案 0 :(得分:1)
尝试:
WebRequest webRequest = (WebRequest) cycle.getRequest();
MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(getMaxSize(), "ignored");
multiPartRequest.parseFileParts();
IRequestParameters params = multiPartRequest.getRequestParameters();
答案 1 :(得分:0)
这是我的最终代码有效......非常难看,但它运作正常。
@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;
}
之后您可以轻松致电:
parameters.getParameterValue("you_param");