java MultipartFile文件上传下载
时间: 2023-07-18 20:21:38 浏览: 117
Java利用MultipartFile实现上传多份文件的代码
Java中使用MultipartFile来实现文件上传和下载,可以通过以下步骤来实现:
1. 文件上传:
通过MultipartFile对象获取上传的文件名、类型、大小等信息,并将文件保存到指定的目录中。
示例代码:
```
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
String fileName = file.getOriginalFilename();
String filePath = "D:/upload/";
File dest = new File(filePath + fileName);
file.transferTo(dest);
return "上传成功!";
} catch (Exception e) {
e.printStackTrace();
return "上传失败!";
}
} else {
return "上传文件为空!";
}
}
```
2. 文件下载:
通过MultipartFile对象获取下载的文件名、类型、大小等信息,并将文件流写入response中,实现文件下载。
示例代码:
```
@GetMapping("/download")
public ResponseEntity<byte[]> downloadFile(@RequestParam("fileName") String fileName) {
String filePath = "D:/upload/";
File file = new File(filePath + fileName);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
try {
headers.setContentDispositionFormData("attachment", new String(fileName.getBytes("UTF-8"), "ISO8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
try {
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK);
} catch (IOException e) {
e.printStackTrace();
return new ResponseEntity<byte[]>(HttpStatus.NOT_FOUND);
}
}
```
以上代码以Windows系统为例,上传的文件保存在D:/upload/目录下,下载的文件也在该目录下。在实际应用中,需要根据具体情况进行修改。
阅读全文