如何使用Play Framework 2.0下载文件

ma *_*las 17 java playframework-2.0

我正在使用Play Framework 2.0.3创建一个应用程序,该应用程序提供应该可由用户下载的Excel文件.

 response().setContentType("application/x-download");  
 response().setHeader("Content-disposition","attachment; filename=tradeLogTest.xlsx");  
Run Code Online (Sandbox Code Playgroud)

但是,如何从response()?tks 获取输出流

bie*_*ior 40

Play的动作可以返回一个文件:

response().setContentType("application/x-download");  
response().setHeader("Content-disposition","attachment; filename=tradeLogTest.xlsx"); 
return ok(new File("/absolute/path/to/tradeLogTest.xlsx"));
Run Code Online (Sandbox Code Playgroud)

这是结果的API

  • 在Scala中有一个快捷方式:Ok.sendFile(new java.io.File(myFile)).对Java来说也许是一样的 (14认同)
  • [here](http://www.playframework.com/documentation/2.0.1/ScalaStream)是@ JulienLafont快捷方式的官方文档. (5认同)

AJ.*_*J.P 6

提供静态文件的下载选项可以在Play中完成:

Ok.sendFile(new File("path to file/abc.csv"), inline=true).withHeaders(CACHE_CONTROL->"max-age=3600",CONTENT_DISPOSITION->"attachment; filename=abc.csv", CONTENT_TYPE->"application/x-download");
Run Code Online (Sandbox Code Playgroud)

还有其他参数可用

对于Internet Explorer - 请确保设置"内容处理"