Wicket文件上载会导致大于最大大小的文件出现ajax错误

时间:2017-06-02 11:22:39

标签: java spring-boot wicket wicket-bootstrap

在我的项目中,我使用以下堆栈:

java 7
弹簧靴1.3.8
检票口6.26.0
wicket-bootstrap 0.9.21

现在我想使用BootstrapFileInputField实现文件上传。

这里是我的wicket html:          

<head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
</head>

<body>
    <div class="container">
        <div wicket:id="alert"></div>
        <form wicket:id="form">
            <input type="file" wicket:id="fileInput" multiple="multiple"/>
        </form>
    </div>
</body>

</html>

我的java wicket类看起来像这样:

form = new BootstrapForm<>("form");
form.setOutputMarkupId(true);
form.setMultiPart(true);
form.setFileMaxSize(Bytes.megabytes(5));

如果我上传的文件小于5 MB,一切都可以。但是,当我上传大于最大文件大小的文件时,会发生ajax错误。

Ajax错误:

ERROR: Cannot read Ajax response for multipart form submit: SecurityError: Blocked a frame with origin "http://localhost:8080" from accessing a cross-origin frame.
ERROR: Wicket.Ajax.Call.failure: Error while parsing response: No XML response in the IFrame document

但是当我删除最大文件大小时,我可以上传相同的文件而不会出错。我该如何解决这个问题?

代码也在github

1 个答案:

答案 0 :(得分:0)

你在Tomcat上部署吗? 最近,一位用户报告说他遇到了同样的问题并通过更改Tomcat maxSwallowSize - http://markmail.org/message/n53epxuqkwf4ze4t

解决了这个问题

另见http://www.mkyong.com/spring-boot/spring-boot-configure-maxswallowsize-in-embedded-tomcat/