springMVC实现文件上传
1、 通过commons-fileupload来实现。

2、 配置springmvc文件上传解析器
<!-- 文件上传解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <!-- 最大上传文件大小 --> <property name="maxUploadSize" value="104857600"></property> <!-- 缓存大小 --> <property name="maxInMemorySize" value="40960"></property> </bean>
3、 jsp页面
<form action="springmvc/upload.do" enctype="multipart/form-data" method="post"> file:<input type="file" name="file"/><input type="submit" value="上传"/> </form>
4、 Controller
@RequestMapping("/upload")
public String fileUpload(@RequestParam("file") CommonsMultipartFile file,
HttpServletRequest req) throws IOException {
// 获取文件名
System.out.println(file.getOriginalFilename());
// 获取上传文件的路径
String path = req.getRealPath("/upload");
InputStream is = file.getInputStream();
OutputStream os = new FileOutputStream(new File(path, file.getOriginalFilename()));
int len = 0;
byte[] buffer = new byte[400];
while((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
is.close();
return "/index.jsp";
}
5、 批量上传
Jsp页面
<form action="springmvc/batchUpload.do" enctype="multipart/form-data" method="post"> <div class="fileDiv"> file:<input type="file" name="file"/><input type="button" id="btn" value="添加"/><br/> </div> <input type="submit" value="上传"/> </form> <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script> <script type="text/javascript"> $("#btn").click(function() { var field = "<p>file:<input type='file' name='file'/><input type='button' onclick='del(this);' value='删除'/></p>"; $(".fileDiv").append(field); }); function del(obj) { $(obj).parent().remove(); } </script>
6、 Controller
@RequestMapping("/batchUpload")
public String fileBatchUpload(@RequestParam("file") CommonsMultipartFile file[],
HttpServletRequest req) throws IOException {
// 获取上传文件的路径
String path = req.getRealPath("/upload");
for (int i = 0; i < file.length; i++) {
InputStream is = file[i].getInputStream();
OutputStream os = new FileOutputStream(new File(path, file[i].getOriginalFilename()));
int len = 0;
byte[] buffer = new byte[400];
while((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
os.close();
is.close();
}
return "/index.jsp";
}

浙公网安备 33010602011771号