前端部分
<!--请求方式必须为post-->
<!--enctype="multipart/form-data"必须有-->
<form method="post" action="/up/load" enctype="multipart/form-data">
<!--name属性的值必须跟后端参数值保持一致-->
<input type="file" name="filename">
<input type="submit" value="上传">
</form>
tips:
- 请求方式必须为post(其实不确定,反正不能是get~)
- enctype="multipart/form-data"必须有
后端部分
@RequestMapping("/load")
public String upload(MultipartFile filename) throws IOException {
//获取文件上传路径
String realpath = ResourceUtils.getURL("classpath:").getPath() + "static/File";
System.out.println(realpath);
//判断路径是否存在,不存在则创建
File file = new File(realpath);
if(!file.exists()){
file.mkdirs();
}
//上传
filename.transferTo(new File(file,filename.getOriginalFilename()));
return "redirect:/OK";
}
tips:
- MultipartFile 参数名必须和前端name属性保持一致
修改文件名上传版本
@RequestMapping("/upload")
public String upload(MultipartFile filename,HttpSession session) throws IOException {
//防止空上传报错
if(filename.isEmpty()){
return "redirect:/show/all";
}
//获取上传用户的id
User user = (User) session.getAttribute("user");
//获取文件后缀
String oldFilename = filename.getOriginalFilename();
String ext = oldFilename.substring(oldFilename.lastIndexOf("."), oldFilename.length());
//文件大小
long size = filename.getSize();
//文件类型
String type = filename.getContentType();
//改名
String newFilename = new SimpleDateFormat("yyyyMMdd").format(new Date())+ UUID.randomUUID().toString().replaceAll("-","")+ext;
//获取文件路径
String realpath = ResourceUtils.getURL("classpath:").getPath()+"static/files";
//按照日期放文件
String dateDir =realpath+"/"+new SimpleDateFormat("yyyyMMdd").format(new Date());
//获取文件对象
File file = new File(dateDir);
//判断是否存在此文件目录,不存在则创建
if(!file.exists()){
file.mkdirs();
}
//上传
filename.transferTo(new File(dateDir,newFilename));
//上传成功后返回查询方法
return "redirect:/show/all";
}
```