19

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

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

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

4

3 回答 3

41

Play 的动作可以返回一个 File:

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

这是一个用于结果的 API

于 2012-12-17T16:04:26.540 回答
7

可以在 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");

还有其他可用的参数

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

于 2014-07-24T17:32:41.303 回答
0

服务文件 如果将整个内容加载到内存中以获取简单内容不是问题,那么大型数据集呢?假设我们想将一个大文件发送回 Web 客户端。

阅读更多:http ://www.playframework.com/documentation/2.0.x/JavaStream

于 2014-01-12T18:20:58.007 回答