无法使用 Play Framework 向浏览器提供文件以供下载

Posted

技术标签:

【中文标题】无法使用 Play Framework 向浏览器提供文件以供下载【英文标题】:cannot serve file to browser for downloadingusing Play Framework 【发布时间】:2014-05-12 21:14:36 【问题描述】:

我正在尝试使用播放框架 1.2.5 向浏览器端提供 csv 文件。 代码如下:

public static Result downloadData() throws Throwable     
        .
        .
        .
        File file =new File(file_written_to);
        .
        response().setHeader("Content-Disposition", "attachment; filename=FILENAME");
        return ok(file);
    

但它一直在说:

Controller 类型中的方法 ok() 不适用于参数(文件)

在我尝试使用return ok("hello") 对其进行测试后,它仍然显示:

Controller 类型中的方法 ok() 不适用于参数(String)

对于response(),它说这个方法是未定义的。

有人对我的代码问题出在哪里有任何想法吗? 提前致谢!

【问题讨论】:

导入语句中的File 是否与ok() 要求的File 相同?您可能导入了错误的类型。 添加适当的 Play 版本作为标签和/或描述 @MartinCarney 我什至试过了 ok("200");它给了我一个错误,说字符串不是正确的类型.. 【参考方案1】:

您似乎正在阅读 Play 2.x 文档。试试:

renderBinary(file);

【讨论】:

【参考方案2】:

您可以尝试玩干净,然后玩编译运行。有时它会崩溃......

【讨论】:

以上是关于无法使用 Play Framework 向浏览器提供文件以供下载的主要内容,如果未能解决你的问题,请参考以下文章

Play Framework 2.7 授权获取用户

Play framework/Netty 不释放socket

Play Framework - 不同语言的 TemplateLoader

Play Framework 无法连接到 WS

无法启动 Play Framework 应用程序

Play Framework,Scala - 仅当有新数据可用时才向客户端发送 websocket 消息