簡體   English   中英

Spring 啟動 rest api csv 下載設置文件擴展名 don'

[英]Spring boot rest api csv download don't set file name with extension

我正在使用 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");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM