gpt4 book ai didi

java - 下载的文件是 html View ,而不是带有 Play Framework 的 CSV

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

我有一个导出方法来获取 MongoDB 集合中所有项目的 CSV。我使用 Apache Commons CSV jar。如果我注释掉response(),它会给我一个无文件,但如果我包含response(),它将在我的导出按钮所在的页面加载时下载CSV。此外,它还会下载 View 模板生成的 HTML 代码。但是,CSV 是按照服务器端我的 Play 目录(并且正确)生成的。

    <a target="_blank" class="btn btn-success" href="@controllers.Application.export" download="Masterlist.csv">Export Domains</a>

public static Result export(){

File fi = new File("Masterlist.csv");

try{

CSVPrinter printer = new CSVPrinter(new FileWriter(fi), CSVFormat.TDF);

//creates the header for the CSV

//creates each line of the CSV

printer.close();
}catch(IOException e){
e.printStackTrace();;
}

//response().setContentType("application/x-download");
//response().setHeader("Content-disposition", "attachment; filename=OLP_Masterlist.csv");

return ok(fi);
}

编辑:使用 Play Framework 2.2.1

最佳答案

第二个 header 应自动设置。要设置文件名,请使用 return ok(fi, "OLP_Masterlist.csv");

在超链接中,不应直接引用 Controller ,而应使用@routes.Application.export。通过使用该路由,您将生成正确的链接。当您直接引用该方法时,您正在加载页面时执行。

关于java - 下载的文件是 html View ,而不是带有 Play Framework 的 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922747/

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