spring mvc 实现文件上传

例:用户注册提交一个头像文件

第一步,创建项目 ,导入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主配置文件中配置上传文件的解析器
第七步,写注册界面
  注册成功之后要跳转到登录界面,创建登录界面。
 

猜你喜欢

转载自www.cnblogs.com/duguangming/p/10957248.html
今日推荐