java代码
@RequestMapping(value="notice/addNotice")
@ResponseBody
public JSONObject addNotice(HttpServletRequest request,
HttpServletResponse response, @RequestParam MultipartFile[] myfiles) throws Exception {
// 如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
// 如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
// 并且上传多个文件时,前台表单中的所有<input
for (MultipartFile myfile : myfiles) {
// if (myfile.isEmpty()) {
// System.out.println("文件未上传");
// } else {
System.out.println("文件长度: " + myfile.getSize());
System.out.println("文件类型: " + myfile.getContentType());
System.out.println("文件名称: " + myfile.getName());
System.out.println("文件原名: " + myfile.getOriginalFilename());
System.out.println("========================================");
// 如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中
// 这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的
// String realPath =
// request.getSession().getServletContext().getRealPath("/FileTest/WebContent/WEB-INF/upload");
String realPath = request.getSession().getServletContext()
.getRealPath("/upload");
System.out.println(realPath);
FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(
realPath, myfile.getOriginalFilename()));
// }
}
return null;
}
jsp代码
<body>
<form action="notice/addNotice.do" enctype="multipart/form-data" method="post">
<p>
选择图片:
<input type="file" name="myfiles">
</p>
<p>
<input type="submit" value="提交">
</p>
</form>
</body>