RequestMapping返回文件下载
时间: 2023-11-10 19:16:56 浏览: 39
在 CSDN 开发的 Spring Boot 中,可以使用 `@RequestMapping` 注解来定义一个接口方法,用于返回文件下载。
首先,你需要在 `@Controller` 或 `@RestController` 注解的类中定义一个方法,然后使用 `@RequestMapping` 注解来映射请求的URL路径。在方法的返回类型上,你可以使用 `ResponseEntity<Resource>` 来返回一个文件资源。
下面是一个简单的示例代码:
```java
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@RestController
public class FileDownloadController {
@GetMapping("/download")
public ResponseEntity<Resource> downloadFile() throws IOException {
// 读取文件
File file = new File("path/to/your/file");
FileInputStream fileInputStream = new FileInputStream(file);
InputStreamResource resource = new InputStreamResource(fileInputStream);
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + file.getName());
// 返回响应实体
return ResponseEntity.ok()
.headers(headers)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(resource);
}
}
```
在上面的示例中,当访问 `/download` 路径时,会返回指定路径下的文件作为下载。你可以根据实际需求修改代码中的文件路径和请求路径。
希望这能帮到你!如果还有其他问题,请随时提问。