gpt4 book ai didi

java - 使用FileSystemResource强制下载文件时如何设置 'Content-Disposition'和 'Filename'?

转载 作者:IT老高 更新时间:2023-10-28 13:47:20 24 4
gpt4 key购买 nike

设置 Content-Disposition=attachment 的最合适和标准的方法是什么?和 filename=xyz.zip使用 Spring 3 FileSystemResource ?

Action 看起来像:

@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实现这一目标的方法。

附:这里使用的文件是一个临时文件,当JVM存在时标记为删除。

最佳答案

除了接受的答案之外,Spring 还有类 ContentDisposition专门为此目的。我相信它处理文件名清理。

      ContentDisposition contentDisposition = ContentDisposition.builder("inline")
.filename("Filename")
.build();

HttpHeaders headers = new HttpHeaders();
headers.setContentDisposition(contentDisposition);

关于java - 使用FileSystemResource强制下载文件时如何设置 'Content-Disposition'和 'Filename'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com