【问题标题】:Retrieve the multipart data from the request inside a AbstractDefaultAjaxBehavior从 AbstractDefaultAjaxBehavior 中的请求中检索多部分数据
【发布时间】:2021-03-11 11:49:03
【问题描述】:

我正在尝试创建一个组件以将 CKEditor 与 Apache Wicket 一起使用。我在 CKEditor 中添加了一个插件来将图像发送到服务器。为此,我使用了为客户端提供的示例:

CKEditor: Custom image upload adapter

对于服务器端,我创建了这个 Java 代码:

add(new AbstractDefaultAjaxBehavior() {
        @Override
        protected void updateAjaxAttributes(final AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            attributes.setMethod(Method.POST);
            attributes.setMultipart(true);
            attributes.setDataType("json");
        }

        @Override
        protected void respond(final AjaxRequestTarget target) {

            // Avoid the redirect (302)
            final RequestCycle requestCycle = getRequestCycle();
            requestCycle.scheduleRequestHandlerAfterCurrent(null);

            // Return the picture URL
            final WebResponse response = (WebResponse) RequestCycle.get().getResponse();
            response.setStatus(200);
            response.setContentType("application/json");
            response.write("{ \"url\": \"http://localhost:8080/image/foobar.jpg\"}");
        }

        @Override
        public void renderHead(final Component component, final IHeaderResponse response) {
            super.renderHead(component, response);
            final String callbackUrl = getCallbackUrl().toString();
            response.render(JavaScriptHeaderItem.forScript("ckeditorCallbackUrl = '" + callbackUrl + "';",
                    "ckeditorCallbackUrl"));
        }
    });

但在response方法中,我不知道如何访问带有图像的多部分数据。

如何检索此表单数据?

谢谢。

【问题讨论】:

    标签: ajax wicket ckeditor5


    【解决方案1】:

    您可以通过以下方式读取文件:

    ServletWebRequest webRequest = (ServletWebRequest) RequestCycle.get().getRequest();
    MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(getMaxSize(), "ignored");
    multiPartRequest.parseFileParts();
    Map<String, List<FileItem>> files = multiPartRequest.getFiles();
    

    您可以在http://wicketinaction.com/2012/11/uploading-files-to-wicket-iresource/阅读更多相关信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多