单击Play Framework上的按钮后强制文件下载

时间:2013-10-28 19:06:54

标签: java javascript playframework playframework-2.0

我目前正在使用Play FrameworkJava控制器)开展项目,我试图在点击后强制浏览器下载.txt.xls个文件一个按钮,从控制器获取信息。虽然我正确地形成了两种类型的文件,但我还没有找到强制下载的方法 经过数小时的深入调查,我设法通过JavascriptJavascriptRoutes通过Ajax致电控制器,但我无法强行下载,尽管我可以放{{1} div中的内容(正确加载)。

这就是我现在所拥有的:

.txt

(单击按钮时会调用 exportText()

function exportText(){
  jsRoutes.controllers.User.generateText().ajax({
    success: function(data) {
      $('#testDiv').html(data);
    },
    error: function() {
      alert("Error!")
    }
  })
}

generateTXT(String)检索public static Result generateText() { response().setContentType("application/x-download"); response().setHeader("Content-disposition","attachment; filename=test.txt"); return ok(generateTXT("test.txt")); } 文件)

任何帮助都会让人感到沮丧!谢谢!

修改

javascriptRoutes 方法如下所示:

File

1 个答案:

答案 0 :(得分:2)

嗯,我意识到Javascript太多了,所以我决定这样做" Scala Way"像这样:

查看

@form(routes.User.generateText()){
    <input type="submit" name="commit" value="Export as .txt"> 
}

<强>控制器

response().setContentType("application/x-download");
response().setHeader("Content-disposition", "attachment; filename=test.txt");
return ok(generateTXT(numbers, "test.txt"));

(正如我在我的问题中所说, generateTXT(String)检索File文件)

谢谢!