我目前正在使用Play Framework
(Java
控制器)开展项目,我试图在点击后强制浏览器下载.txt
和.xls
个文件一个按钮,从控制器获取信息。虽然我正确地形成了两种类型的文件,但我还没有找到强制下载的方法
经过数小时的深入调查,我设法通过Javascript
和JavascriptRoutes
通过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
答案 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
文件)
谢谢!