gpt4 book ai didi

java - 如何创建包含内容的文件并使用 THYMELEAF 下载

转载 作者:行者123 更新时间:2023-12-01 13:01:58 31 4
gpt4 key购买 nike

我正在使用 thymeleaf 进行 spring boot 项目,我需要创建一个文件并在其上放置一些行,然后将其发送给用户下载。

@PostMapping("/filegenerator")
public String createFile(@ModelAttribute("page") Page page, Model model) {
List<String> lines = new ArrayList<String>();

//Some code ..........

lines.forEach(l->{
System.out.println(l);
});

//Here I need to create a file with the List of lines

//And also put some code to download it

return "filegenerator";
}

最佳答案

因此,如果您想返回一个文件,您可能希望流式传输它以限制使用的内存量(或者至少这可能是 Spring Framework 创建者的推理)。在您的情况下,我知道该文件相当小,并且实际上不必保留在任何地方。这只是基于上传表单的一次性下载,对吗?

所以这种方法适用于我的电脑:

@PostMapping("/filegenerator")
public void createFile(HttpServletResponse response) throws IOException {
List<String> lines = Arrays.asList("line1", "line2");
InputStream is = new ByteArrayInputStream(lines.stream().collect(Collectors.joining("\n")).getBytes());
IOUtils.copy(is, response.getOutputStream());
response.setContentType("application/sql");
response.setHeader("Content-Disposition", "attachment; filename=\"myquery.sql\"");
response.flushBuffer();
}

请注意 content-disposition标题。它明确指出您不想在浏览器中显示该文件,而是希望将其作为文件下载,并且 myquery.sql是将要下载的文件的名称。

关于java - 如何创建包含内容的文件并使用 THYMELEAF 下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62101513/

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