File 用于自动下载文件的Spring引导端点

File 用于自动下载文件的Spring引导端点,file,spring-boot,File,Spring Boot,我想为下载文件创建一个Spring引导端点。我已经尝试过这个东西,但文件不会自动下载。。。我只得到正文中的文件内容 @RequestMapping(value = "/files", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) @ResponseBody public ResponseEntity<FileSystemResource> getFile(@RequestParam(name = "start") Strin

我想为下载文件创建一个Spring引导端点。我已经尝试过这个东西,但文件不会自动下载。。。我只得到正文中的文件内容

@RequestMapping(value = "/files", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
@ResponseBody
public ResponseEntity<FileSystemResource> getFile(@RequestParam(name = "start") String start)  {
    return new ResponseEntity<>(new FileSystemResource(myService.makeFile(start)),
            HttpStatus.OK);
}

我已经读到MediaType.APPLICATION\u OCTET\u STREAM\u值将强制下载它,但在我的情况下没有发生任何事情。

您的思路是正确的,您只需要将一个响应头
内容配置
设置为
附件;filename=您的文件名

试试这个:

@RequestMapping(value = "/files", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public FileSystemResource getFile(@RequestParam(name = "start") String start, HttpServletResponse response) {
    response.setHeader("Content-Disposition", "attachment; filename=" + "YOUR_FILE_NAME");
    return new FileSystemResource(myService.makeFile(start));
}
@RequestMapping(value = "/files", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public FileSystemResource getFile(@RequestParam(name = "start") String start, HttpServletResponse response) {
    response.setHeader("Content-Disposition", "attachment; filename=" + "YOUR_FILE_NAME");
    return new FileSystemResource(myService.makeFile(start));
}