我有一个相当简单的Spring Boot Web应用程序,我有一个带有表单的HTML页面enctype="multipart/form-data".我收到这个错误:
多部分请求包含超出相关连接器上设置的maxPostSize限制的参数数据(不包括上载文件).
我正在使用Spring Boot的默认嵌入式tomcat服务器.显然默认maxPostSize值是2兆字节.有没有办法编辑这个值?通过这样做application.properties是最好的,而不是必须创建自定义bean或乱用xml文件.
我尝试将InputStream复制到File,如果InputStream的大小大于1MB,则中止复制.在Java7中,我编写了如下代码:
public void copy(InputStream input, Path target) {
OutputStream out = Files.newOutputStream(target,
StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE);
boolean isExceed = false;
try {
long nread = 0L;
byte[] buf = new byte[BUFFER_SIZE];
int n;
while ((n = input.read(buf)) > 0) {
out.write(buf, 0, n);
nread += n;
if (nread > 1024 * 1024) {// Exceed 1 MB
isExceed = true;
break;
}
}
} catch (IOException ex) {
throw ex;
} finally {
out.close();
if (isExceed) {// Abort the copy
Files.deleteIfExists(target);
throw new …Run Code Online (Sandbox Code Playgroud) 我想限制接受的application / json http请求正文的大小。这样就不可能将数兆的json发送到我的应用程序,然后再对其进行处理并使我的应用程序长时间运行。
我在这里读到,没有开箱即用的解决方案可以做到这一点。 Spring Boot嵌入式Tomcat“应用程序/ json”发布请求限制为10KB
除了自己实现某些功能之外,还有其他解决方案吗?对我来说,这似乎是一个非常常见的用例,我不敢相信对此没有通用的解决方案,因为这是一个非常容易利用的安全性问题。