如何使用Spring中的FileSystemResource正确下载文件?

3
我有以下代码用于下载文件:-
@Controller
public class FileController {
    @RequestMapping(value = "/files/{file_name:.+}", method = RequestMethod.GET)
    @ResponseBody
    public FileSystemResource getFile(@PathVariable("file_name") String fileName) {

        return new FileSystemResource("C:/Users/sourav/fileServer/"+fileName);

    }

}

当我第一次打开链接时,什么也没有显示出来。当我重新加载页面时,只会下载一个名为 f.txt 的文本文件,而不是 pdf 文件。我想要在浏览器中显示 pdf 文件。如何解决这个问题?


我也遇到了同样的问题,正在使用Spring 4.3.4。 - yglodt
3个回答

1
我认为您需要设置响应头。否则,浏览器无法直观地了解文件格式。类似于response.setContentType("application/pdf");这样的内容。

你是对的,必须在头部添加媒体类型。这是另一个示例,如何做:@RequestMapping(value = "/files/{file_name:.+}", method = RequestMethod.GET,produces = MediaType.APPLICATION_PDF_VALUE ) 或者 @GetMapping(value = "/files/{file_name:.+}", produces = MediaType.APPLICATION_PDF_VALUE) - Oleksandr Potomkin

0

0

你的代码没问题。我认为如果你尝试使用PDF文件,它会像你期望的那样工作,并在浏览器中显示。我测试过了,在Chrome和Firefox中都可以正常工作。也许你的测试文件已经损坏了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接