Content-Disposition=attachment
设置和filename=xyz.zip
使用 Spring 3的最合适和标准的方法是FileSystemResource
什么?
动作看起来像:
@ResponseBody
@RequestMapping(value = "/action/{abcd}/{efgh}", method = RequestMethod.GET, produces = "application/zip")
@PreAuthorize("@authorizationService.authorizeMethod()")
public FileSystemResource doAction(@PathVariable String abcd, @PathVariable String efgh) {
File zipFile = service.getFile(abcd, efgh);
return new FileSystemResource(zipFile);
}
虽然该文件是一个 zip 文件,所以浏览器总是下载该文件,但我想明确提及该文件作为附件,并提供一个与文件实际名称无关的文件名。
这个问题可能有解决方法,但我想知道正确的 Spring 和FileSystemResource
实现这个目标的方法。
PS这里使用的文件是临时文件,当JVM存在时标记为删除。