Playframework 播放框架集下载文件名

Playframework 播放框架集下载文件名,playframework,playframework-2.0,playframework-2.1,Playframework,Playframework 2.0,Playframework 2.1,我通过play.mvc.Results.ok(文件)从控制器返回一个文件。但是,文件下载为“下载”,没有特定的文件名。有没有办法设置下载的名称(即image.png) 谢谢为了定义特定的文件名,在返回确定(文件)结果之前,您必须在响应中设置内容处置标题 下面是一个示例代码: public static Result myAction() { ... response().setHeader("Content-Disposition", "attachment; filename=

我通过play.mvc.Results.ok(文件)从控制器返回一个文件。但是,文件下载为“下载”,没有特定的文件名。有没有办法设置下载的名称(即image.png)


谢谢

为了定义特定的文件名,在返回
确定(文件)
结果之前,您必须在响应中设置
内容处置
标题

下面是一个示例代码:

public static Result myAction() {
    ...
    response().setHeader("Content-Disposition", "attachment; filename=image.png");
    return ok(file);
}

在Scala(Play 2.4.x)中实现这一点的魔法是

请注意,它是复数形式,是一个映射,如果需要,可以有多个值

当然,接下来您要做的是将其作为实际下载,如下所示:

def myAction() {
    ...
    ok(file).withHeaders(CONTENT_TYPE -> "application/x-download",  CONTENT_DISPOSITION -> "attachment; filename=image.png")
}
请注意,控制器中定义的大多数标头都有常量

def myAction() {
    ...
    ok(file).withHeaders(CONTENT_TYPE -> "application/x-download",  CONTENT_DISPOSITION -> "attachment; filename=image.png")
}