java – 使用与允许的最大大小相关的Tomcat在Spring上载文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用与允许的最大大小相关的Tomcat在Spring上载文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4122字,纯文字阅读大概需要6分钟。
内容图文
![java – 使用与允许的最大大小相关的Tomcat在Spring上载文件](/upload/InfoBanner/zyjiaocheng/805/0c862d81813f4153a9a285c30a159cf1.jpg)
我对Spring很新,我希望有一个multipart表单并处理MaxUploadSizeExceededException异常,以便在jsp中显示错误消息.我遇到的主要问题是MaxUploadSizeLimitExceededExceptionResolver类中的ModelAndView对象,我不知道如何将它用于此前解释过的目标.
我有的文件:
1)模型类UploadItem.java. 2)查看表单UploadForm.jsp. 3)Controller Uploadcontroller.java. 4)类MaxUploadSizeLimitExceededExceptionResolver.java来处理异常Uploadcontroller
1)模型UploadItem
public class UploadItem {
private String name;
private CommonsMultipartFile fileData;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public CommonsMultipartFile getFileData() {
return fileData;
}
public void setFileData(CommonsMultipartFile fileData) {
this.fileData = fileData;
}
}
2)查看表单UploadForm.jsp
<html>
<head>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Upload form</title>
</head>
<body>
<form:form modelAttribute="uploadItem" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Upload Fields</legend>
<p>
<form:label for="name" path="name">Name</form:label><br/>
<form:input path="name"/>
</p>
<p>
<form:label for="fileData" path="fileData">File</form:label><br/>
<form:input path="fileData" type="file"/>
</p>
<p>
<input type="submit" />
</p>
</fieldset>
</form:form>
</body>
</html>
3)Controller Uploadcontroller
public class Uploadcontroller {
@RequestMapping(method = RequestMethod.GET)
public String getUploadForm(Model model) {
model.addAttribute(new UploadItem());
return "upload/uploadForm";
}
@RequestMapping(method = RequestMethod.POST)
public String create(HttpServletRequest request, UploadItem uploadItem,
BindingResult result, Exception exception) {
if (result.hasErrors()) {
// logger.info("create upload");
for (ObjectError error : result.getAllErrors()) {
System.err.println("Error: " + error.getCode() + " - "
+ error.getDefaultMessage());
}
return "upload/uploadForm";
}
System.err.println("Test upload: " + uploadItem.getName());
System.err.println("Test upload: "
+ uploadItem.getFileData().getOriginalFilename());
// TODO redirect this
return "/home";
}
}
4)处理异常UploadController的组件
@Component
public class MaxUploadSizeLimitExceededExceptionResolver extends
SimpleMappingExceptionResolver {
private static final Logger logger = LoggerFactory
.getLogger(HomeController.class);
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception exception) {
Map<String, Object> model = new HashMap<String, Object>();
logger.info("getUploadForm at the beggining");
ModelAndView modelView = new ModelAndView();
if (exception instanceof MaxUploadSizeExceededException)
{
model.put("errors", exception.getMessage());
modelView.addObject("errors", exception.getMessage());
logger.info("getUploadForm: MaxUploadSizeExceededException" );
} else
{
model.put("errors", "Unexpected error: " + exception.getMessage());
modelView.addObject("errors", "Unexpected error: " +exception.getMessage());
}
logger.info("getUploadForm at the end" );
model.put("uploadedFile", new UploadItem());
modelView.addObject(new UploadItem());//("uploadedFile", new UploadItem());
modelView.setViewName("/upload/uploadForm");
return modelView;
}
}
编辑以添加更多详细信息:
实际上,问题出在另一个方向.我的maxUploadSize文件的大小设置为1MB,但我试图用大于3 MB的文件进行测试.当我尝试使用文件,直到最大2 MB工作正常.问题是我得到了一个ERR_CONNECTION_RESET,它似乎与Tomcat有关,这是一个maxSwallowSize的配置 – > stackoverflow.com/questions/29113262 / …我将继续研究并保持此线程更新.
新的消息.
我尝试过Tomcat 7.0.61,错误是ERR_CONNECTION_ABORTED
我尝试过Tomcat 6.0.43,没有错误!
解决方法:
经过调查,问题是由于Tomcat.In the version 7.0.55 was introduced the property maxSwallowSize默认设置为2MB.这使Tomcat中止了上传请求.通过设置此属性to another value,问题得以解决(我将其更改为-1,请不要在您的PRD环境中执行此操作,因为Tomcat将尝试获取要上载的X MB文件).我通过在我的连接器属性中添加我的Tomcat服务器文件${tomcat_dir} /conf/server.xml中的属性maxSwallowSize来做到这一点
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxSwallowSize="-1"/>
您需要重新启动Tomcat以便进行此配置,如果不起作用,请删除服务器并再次添加.
内容总结
以上是互联网集市为您收集整理的java – 使用与允许的最大大小相关的Tomcat在Spring上载文件全部内容,希望文章能够帮你解决java – 使用与允许的最大大小相关的Tomcat在Spring上载文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。