在一个MVC架构下,文件上传和下载通常是单独的模块来处理的。在这个模块中,通常会有一个文件上传的控制器和一个文件下载的控制器来处理相应的操作。
文件上传处理:
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
// 检查文件是否为空
if (file.isEmpty()) {
return "文件为空";
}
try {
// 获取文件的字节数组
byte[] bytes = file.getBytes();
// 指定文件保存的路径
Path path = Paths.get("/path/to/save/file/" + file.getOriginalFilename());
// 写入文件
Files.write(path, bytes);
} catch (IOException e) {
e.printStackTrace();
return "文件上传失败";
}
return "文件上传成功";
}
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">上传文件</button>
</form>
文件下载处理:
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() {
// 获取文件路径
Path path = Paths.get("/path/to/save/file/example.txt");
Resource resource = new FileSystemResource(path);
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Disposition", "attachment; filename=" + resource.getFilename());
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
<a href="/download">下载文件</a>
通过以上的方式,可以在MVC架构下方便地处理文件上传和下载操作。在实际项目中,可以根据需求对文件上传和下载模块进行扩展和优化。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。