- 加入thymeleaf依赖
- MultipartFile 接受前台传过来的文件
- file.getOriginalFilename() 获取上传文件的文件名
- 写明文件存储的位置
- file.transferTo(dest); 将上传文件写到服务器上指定的文件
new File(“xxx.xxx”) 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件
file.html 单文件上传
单文件上传 controller
//实现文件上传
@RequestMapping("fileUpload")
@ResponseBody
//MultipartFile : 接受前台传过来的文件
public String fileUpload(@RequestParam("fileName")MultipartFile file){
if(file.isEmpty()){
return "false";
}
//得到上传时的文件名
String fileName = file.getOriginalFilename();
int size = (int) file.getSize();
System.out.println(fileName+"-->"+size);
//上传的文件要存储的地址
String path = "E:/FileTest/";
File dest = new File(path + fileName);
//判断父目录是否存在
if(dest.getParentFile().exists()){ //getParentFile() : 获得父目录
dest.getParentFile().mkdir();
}
try{
//transferTo(dest)方法将上传文件写到服务器上指定的文件
file.transferTo(dest);
return "true";
} catch (Exception e) {
e.printStackTrace();
return "false";
}
}
multifile.html 多文件上传
多文件上传 controller
//实现多文件上传
@RequestMapping("multifileUpload")
@ResponseBody
public String multifileUpload(HttpServletRequest request){
List<MultipartFile> files = ((MultipartHttpServletRequest)request).getFiles("fileName");
if(files.isEmpty()){
return "false";
}
String path = "E:/FileTest/";
for (MultipartFile file:files){
//获取上传文件的名称
String fileName = file.getOriginalFilename();
int size = (int) file.getSize();
System.out.println(fileName+"-->"+size);
//上传的文件要储存的地址
File dest = new File(path+fileName);
if(!dest.getParentFile().exists()){
dest.getParentFile().mkdir();
}
try {
file.transferTo(dest);
} catch (IOException e) {
return "false";
}
}
return "true";
}