springboot文件上传下载
时间: 2023-10-14 21:29:49 浏览: 88
好的,以下是Spring Boot实现文件上传下载的示例代码:
1. 文件上传
首先需要在Controller中添加接口,用于接收上传的文件。代码如下:
```java
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传失败,请选择文件";
}
String fileName = file.getOriginalFilename();
String filePath = "D:/upload/";
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
return "上传成功";
} catch (IOException e) {
e.printStackTrace();
}
return "上传失败!";
}
```
其中,@PostMapping("/upload") 表示接口请求的路径,@RequestParam("file") 表示接收文件参数,MultipartFile 类型的 file 变量就是上传的文件。上传成功后,返回“上传成功”提示信息。
2. 文件下载
在Controller中添加接口,用于实现文件下载。代码如下:
```java
@GetMapping("/download")
public String download(HttpServletResponse response) {
String fileName = "test.txt";
String filePath = "D:/upload/";
File file = new File(filePath + fileName);
if (file.exists()) {
response.setContentType("application/force-download");
response.addHeader("Content-Disposition", "attachment;fileName=" + fileName);
byte[] buffer = new byte[1024];
FileInputStream fis = null;
BufferedInputStream bis = null;
try {
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
OutputStream os = response.getOutputStream();
int i = bis.read(buffer);
while (i != -1) {
os.write(buffer, 0, i);
i = bis.read(buffer);
}
return "下载成功";
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
return "文件不存在";
}
```
其中,@GetMapping("/download") 表示接口请求的路径,fileName 和 filePath 分别表示要下载的文件名和文件路径。如果文件存在,设置响应的Content-Type和Content-Disposition,将文件输出到响应流中。
以上是Spring Boot文件上传下载的示例代码,希望能对你有所帮助。
阅读全文