未在文件下载上设置Content-Disposition标头

时间:2012-03-31 10:37:31

标签: java playframework-2.0

除了永远不会设置内容处置标头并且使用错误名称下载文件之外,以下代码的工作非常精彩。

我已经搜索过Java API但看不到设置标头的方法。我试图在apply函数中设置它,但响应对象在那时为null。我已尝试在索引函数中设置标题但忽略它。有人可以解释我出错的地方吗?非常感谢。

package controllers;

import java.io.File;
import java.util.concurrent.Callable;

import play.libs.Akka;
import play.libs.F;
import play.libs.F.Function;
import play.mvc.Controller;
import play.mvc.Result;

public class Application extends Controller
{
    public static Result index()
    {
        F.Promise<File> promiseOfFile = Akka.future(new Callable<File>()
        {
            public File call()
            {
                return new File("temporaryfilename.txt");
            }
        });

        response().setHeader("Content-Disposition", "attachment; filename=\"actualfilename.txt\"");

        return async(promiseOfFile.map(new Function<File, Result>()
        {
            @Override
            public Result apply(File file)
            {
                return ok(file);
            }
        }));
    }
}

1 个答案:

答案 0 :(得分:0)

这是Play 2.1中修复的错误。

请参阅此博文:https://groups.google.com/forum/#!topic/play-framework/-RlqeZDHcFU