您的位置:首页 > 编程语言 > Java开发

springboot单个文件、多个文件上传

2017-04-07 00:00 344 查看
模板使用的是thymeleaf

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Title</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data" action="/upload">
<p>文件1:<input type="file" name="myfile"/></p>
<p><input type="submit" value="单个上传"/></p>
</form>
<br/>
<form method="POST" enctype="multipart/form-data" action="/batch/upload">
<p>文件1:<input type="file" name="file"/></p>
<p>文件2:<input type="file" name="file"/></p>
<p>文件3:<input type="file" name="file"/></p>
<p><input type="submit" value="多个上传"/></p>
</form>
</body>
</html>

controller

@Controller
public class FileController {
String filePath = "H://upload//";

/**
* 上传页面
* @return
*/
@RequestMapping("/")
public String toIndex() {
return "upload";
}

/**
* 单个文件上传
* @param file
* @return
*/
@PostMapping("/upload")
@ResponseBody
public String uploadFile(@RequestParam("myfile") MultipartFile file) {
if (!ObjectUtils.isEmpty(file)) {
upload(file);
return "successful";
} else {
return "file is empty....";
}
}

/**
* 多个文件上传
* @param request
* @return
*/
@PostMapping("/batch/upload")
@ResponseBody
public String uploadFiles(HttpServletRequest request) {
List<MultipartFile> fileList = ((MultipartHttpServletRequest) request).getFiles("file");
fileList.stream().filter(file -> !ObjectUtils.isEmpty(file)).forEach(this::upload);
return "successful";
}

private void upload(MultipartFile file) {
String filename = file.getOriginalFilename();
File dest = new File(filePath + filename);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
} catch (IOException e) {
e.printStackTrace();
}
}
}

完整代码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: