前端JSP页面代码
<body>
<form id="queryForm" name="queryForm" action="" method="post">
<input id="filename" name="filename" type="file">
<button onclick="sub()">提交</button>
</form>
</body>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script type="text/javascript" src="js/jquery.from.js"></script>
<script type="text/javascript">
function sub() {
$("#queryForm").ajaxSubmit({
type : "POST",
url : "upload.action",
dataType : "json",
success : function(data) {
alert(data);
}
});
}
</script>
后端代码
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public Object upload(@RequestParam(value = "filename", required = false) MultipartFile filename)
throws IOException {
if (!filename.isEmpty()) {
String url = "F:\\upload";
File file = new File(url);
if (!file.isDirectory() && !file.exists()) {
file.mkdir();
}
InputStream is = filename.getInputStream();
String name = filename.getOriginalFilename();
FileOutputStream fileOutputStream = new FileOutputStream(url + "/" + name);
byte[] b = new byte[is.available()];
is.read(b);
fileOutputStream.write(b);
} else {
return "on";
}
return "ok";
}
实现文件上传时需在servlet.xml中添加配置
<!-- 配置MultipartResolver,用于上传文件,使用spring的CommonsMultipartResolver -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxInMemorySize" value="4096"></property>
<property name="maxUploadSize" value="5000000"></property>
<property name="defaultEncoding" value="UTF-8"></property>
</bean>