Thymeleaf 页面渲染
<form action="/" method="post"
enctype="multipart/form-data">
上传文件:
<input type="file" name="file"/><br/>
<input type="submit" value="上传"/>
</form>
<ul>
<li th:each="file:${files}">
<a th:href="${file}"><img th:src="${file}"/></a>
</li>
</ul>
SpringMVC,使用Java7 New IO
...
private final Path location = Paths.get("src/main/resources/files");
@GetMapping
public String show(Model model) throws IOException {
if (!Files.exists(location)) Files.createDirectory(location);
List<Path> files = Files.list(location)
.map(location::relativize)
.map(file -> Paths.get("files").resolve(file))
.collect(Collectors.toList());
model.addAttribute("files", files);
return "index";
}
//上传
@PostMapping("/upload")
public String upload(HttpServletRequest request) throws IOException, ServletException {
Part part = request.getPart("file");
InputStream src = part.getInputStream();
Path des = location.resolve(part.getSubmittedFileName());
if (!Files.exists(des))
Files.copy(src, des);
return "redirect:/";
}
//下载
@GetMapping("files/{filename:.+}")
public void get(@PathVariable String filename, HttpServletResponse response) throws IOException {
Path src = location.resolve(filename);
if (Files.exists(src))
Files.copy(src, response.getOutputStream());
}
...