- 添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.编写controller
import org.springframework.core.io.FileSystemResource;
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 javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@Controller
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<FileSystemResource> downloadFile(HttpServletResponse response) throws IOException {
String filePath = "path/to/your/file.txt"; // 替换为实际文件路径
Path path = Paths.get(filePath);
// 检查文件是否存在
if (!Files.exists(path)) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, "File not found");
return null;
}
FileSystemResource file = new FileSystemResource(path.toFile());
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + path.getFileName() + "\"");
return ResponseEntity.ok()
.headers(headers)
.contentLength(file.contentLength())
.contentType(MediaType.parseMediaType("text/plain"))
.body(file);
}
}
- 运行Spring Boot应用并访问接口
springBoot应用默认端口为8080。
http://localhost:8080/download
标签:浏览器,Springboot,http,springframework,file,org,import,path,读取
From: https://blog.51cto.com/u_15406246/11938277