所需依赖
-
org.springframework.boot -
spring-boot-starter-web
完整的Controller代码
- import org.springframework.core.io.InputStreamResource;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
-
- @Controller
- public class FileDownloadController {
-
- @GetMapping("/download")
- @ResponseBody
- public ResponseEntity
downloadFile() throws IOException { - File file = new File("实际的文件路径");
- InputStream inputStream = new FileInputStream(file);
- InputStreamResource resource = new InputStreamResource(inputStream);
-
- HttpHeaders headers = new HttpHeaders();
- headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=实际的文件名");
-
- return ResponseEntity.ok()
- .headers(headers)
- .contentLength(file.length())
- .contentType(MediaType.APPLICATION_OCTET_STREAM)
- .body(resource);
- }
- }