问题描述中提到在API响应中返回的文件名为'undefined',这可能是由于在Spring Boot中的代码中出现了一些问题。解决方法可以根据具体情况而定,以下是一种可能的解决方案:
以下是一个示例代码,演示了如何正确设置文件名并在API响应中返回:
@RestController
public class FileController {
@GetMapping("/download")
public ResponseEntity downloadFile() throws IOException {
// 假设你有一个文件对象 file,需要设置文件名
File file = new File("path/to/file");
String fileName = "example.txt"; // 设置文件名为 example.txt
// 创建文件资源对象
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName)
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.contentLength(file.length())
.body(resource);
}
}
在上述示例代码中,我们首先设置了文件名变量 fileName
为 "example.txt"。然后,在返回API响应时,我们将该文件名设置为响应的 header 中的 Content-Disposition
字段,确保文件名正确显示在API响应中。
请注意,示例代码中的文件名是硬编码为 "example.txt",你可以根据你的实际需要进行更改。