例:用户注册提交一个头像文件
第一步,创建项目 ,导入jar包
做文件上传除了要导入spring常规的jar包外,还要导入commons-fifileupload和commons-io这两个jar包。
第二步,web.xml中声明spring的核心监听器 ,spring mvc的前端控制器
第三步,创建spring和spring mvc的主配置文件
第四步,创建包和类
1.创建用户实体类
2.创建控制器
package com.aaa.springmvc.controller; import com.aaa.springmvc.entity.Users; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.UUID; /** * */ @Controller public class UserController { /** * 用户注册的请求 * @param user * @return */ @RequestMapping("/register") public String register(Users user, MultipartFile file){ //获取文件的真实文件名 String trueName = file.getOriginalFilename(); System.out.println("真实文件名:"+trueName); //获取文件的大小 Long size = file.getSize(); System.out.println("文件大小(字节):"+size); //需要把file文件存储到本地磁盘上 String DIR = "D:/upload/"; //保存的时候不能保存真实文件名,可以使用一种机制生成唯一的文件名 //UUID类是用来获取32位的固定长度的随机字符串,每次获取到的字符串永远不会重复。 String saveName = UUID.randomUUID().toString(); //创建要保存的文件 File newFile = new File(DIR+saveName); //把临时文件file转储到newFile上 try { file.transferTo(newFile); } catch (IOException e) { e.printStackTrace(); } user.setTrueName(trueName); user.setSaveName(saveName); System.out.println("用户名:"+user.getUsername()); System.out.println("密码:"+user.getPassword()); return "redirect:/login.jsp"; } public static void main(String[] args) { String str = UUID.randomUUID().toString(); System.out.println(str); str = UUID.randomUUID().toString(); System.out.println(str); } }
第五步,扫描控制器的包
第六步,在spring mvc主配置文件中配置上传文件的解析器
第七步,写注册界面
注册成功之后要跳转到登录界面,创建登录界面。