除了永远不会设置内容处置标头并且使用错误名称下载文件之外,以下代码的工作非常精彩。
我已经搜索过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);
}
}));
}
}
答案 0 :(得分:0)
这是Play 2.1中修复的错误。
请参阅此博文:https://groups.google.com/forum/#!topic/play-framework/-RlqeZDHcFU