gpt4 book ai didi

java - Play Framework : Sending CSV file as an attachment

转载 作者:行者123 更新时间:2023-12-01 09:48:49 25 4
gpt4 key购买 nike

如何在 Play 框架中以附件形式发送 CSV 文件?我查看了 Play 文档,但没有找到我要找的东西。我知道我可以返回这样的输入流:ok(java.io.InputStream content, int chunkSize) 但如何创建内容并将其发送到 csv 文件?

最佳答案

Play 可以轻松操作 HTTPResponse。您可以在the manual中找到,如何在响应中添加 header 、设置 cookie 等。
实现因用例而异:

  • 某些字符串源在发送到客户端时会转换为 csv 文件。
  • 现有 csv 文件将发送至客户端。

在 HTTPResponse 中将字符串作为 CSV 文件发送

Play 2.4

static private final String CSV_FILE_NAME = "demo.csv";
...
public Result string2CsvFile() {
String csvContent = "f1,f2,f3,f4";
response().setContentType("text/csv");
response().setHeader(CONTENT_DISPOSITION,
String.format("attachment; filename=\"%s\"", CSV_FILE_NAME));
return ok(new ByteArrayInputStream(csvContent.getBytes()));
}

Play 2.5

static private final String CSV_FILE_NAME = "demo.csv";
...
public Result string2CsvFile() {
String csvContent = "f1,f2,f3,f4";
response().setHeader(CONTENT_DISPOSITION,
String.format("attachment; filename=\"%s\"", CSV_FILE_NAME));
return ok(new ByteArrayInputStream(csvContent.getBytes())).as("text/csv");
}

在 HTTPResponse 中发送现有 CSV 文件

Play 2.4

static private final String CSV_FILE_NAME = "demo.csv";
...
public Result attachCsvFile() {
response().setContentType("text/csv");
response().setHeader(CONTENT_DISPOSITION,
String.format("attachment; filename=\"%s\"", CSV_FILE_NAME));
return ok(Play.application().getFile(CSV_FILE));
}

Play 2.5

 static private final String CSV_FILE_NAME = "demo.csv";
...
public Result attachCsvFile() {
response().setHeader(CONTENT_DISPOSITION,
String.format("attachment; filename=\"%s\"", CSV_FILE_NAME));
return ok(Play.current().getFile(CSV_FILE)).as("text/csv");
}

关于java - Play Framework : Sending CSV file as an attachment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756207/

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