SpringBoot提供接口下载后端resources目录下的文件给前端
时间: 2024-01-21 14:02:45 浏览: 189
SpringBoot后台实现文件上传下载
是的,SpringBoot可以提供接口让前端下载后端`resources`目录下的文件。可以通过以下步骤实现:
1. 在`application.properties`或`application.yml`中配置`spring.resources.static-locations`属性,指定资源文件的路径,例如:
```
spring.resources.static-locations=classpath:/static/,file:/path/to/resources/
```
这里配置了两个路径,一个是`classpath:/static/`,表示在`src/main/resources/static/`目录下查找静态资源;另一个是`file:/path/to/resources/`,表示在指定的`/path/to/resources/`目录下查找资源。
2. 创建一个Controller,用于处理下载请求,例如:
```java
@RestController
public class DownloadController {
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
Resource resource = new ClassPathResource("/static/test.txt");
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=test.txt");
return ResponseEntity.ok()
.headers(headers)
.contentLength(resource.contentLength())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource);
}
}
```
这里假设要下载的文件为`test.txt`,位于`src/main/resources/static/test.txt`。
3. 在前端页面中添加下载链接,例如:
```html
<a href="/download">Download</a>
```
当用户点击该链接时,会向后端发送一个GET请求,后端会返回一个`test.txt`文件供用户下载。
注意:在实际开发中,需要根据具体需求进行配置和实现。此处只是提供一个示例,具体实现方式可能会有所不同。
阅读全文