gpt4 book ai didi

java - Spring Boot Rest api csv下载不设置带扩展名的文件名

转载 作者:行者123 更新时间:2023-12-02 08:41:13 25 4
gpt4 key购买 nike

我正在使用 OpenCSV 库编写一个用于 CSV 下载的 REST API。我正在设置 Content-Disposition 来设置文件名的下载。目前,文件已下载,但未设置文件名或未设置任何扩展名。它以名为 download 的方式下载,没有扩展名,但当我打开它时数据很好。

在 Controller 中,我设置了 Content-DispositionContent-Type 作为响应。

  @GetMapping("/download")
public void download(HttpServletResponse response) throws IOException {
response.setContentType("text/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; file=customers.csv");
service.download(response.getWriter());
}

这里我在服务中的响应编写器中写入 csv 数据。

  public void download(PrintWriter writer) {
List<Resource> resources = this.getData();
try (
CSVWriter csvWriter = new CSVWriter(writer,
CSVWriter.DEFAULT_SEPARATOR,
CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
){
csvWriter.writeNext(this.getCsvHeader());
for (Resource resource : resources) {
csvWriter.writeNext(getCsvData(resource));
}
}catch (IOException e) {
log.info("Writing CSV error {}",e.toString());
throw new FailedException();
}
}

最佳答案

Content-Disposition 必须使用属性“文件名”

response.setHeader("Content-Disposition", "attachment; filename=customers.csv");

关于java - Spring Boot Rest api csv下载不设置带扩展名的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61383743/

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