javaweb简单的实现文件上传

 java代码:

//  @RequestMapping(value = "/upload.do", method = RequestMethod.POST)
@RequestMapping(value = "savefile", method = RequestMethod.POST)
// 这里的MultipartFile对象变量名跟表单中的file类型的input标签的name相同,所以框架会自动用MultipartFile对象来接收上传过来的文件,当然也可以使用@RequestParam("img")指定其对应的参数名称
public String upload(MultipartFile upfile, HttpSession session, HttpServletRequest request)
throws Exception {
// 如果没有文件上传,MultipartFile也不会为null,可以通过调用getSize()方法获取文件的大小来判断是否有上传文件
if (upfile.getSize() > 0) {
// 得到项目在服务器的真实根路径,如:/home/tomcat/webapp/项目名/images
// String path = session.getServletContext().getRealPath("/");
String path=request.getRealPath("/");
// 得到文件的原始名称,如:美女.png
String fileName = upfile.getOriginalFilename();
// 通过文件的原始名称,可以对上传文件类型做限制,如:只能上传jpg和png的图片文件
if (fileName.endsWith("jpg") || fileName.endsWith("png") || fileName.endsWith("txt")) {
File file = new File(path, fileName);
upfile.transferTo(file);
return "/success.jsp";
}
}
return "/error.jsp";
}

 

 

 

注意事项:

1:文件上传表单要用post方式提交,并且要加上  enctype="multipart/form-data" ;

2:后台要用文件类型接收文件,不能用字符串接收,负责会报错;

3:后台可用 String path=request.getRealPath("/"); 方法获取项目的路径,把文件放到相应的路径中。

4:springmvc中有对上传文件的大小做限制 --> 

 5.多文件上传

  - 要使用multiple属性

  - 后台接受是一个数组

 

 

 

数组接收的时候要注意使用 @RequestParam false

posted @ 2018-09-11 14:18  农名工进城  阅读(6449)  评论(0编辑  收藏  举报