Java 如何更改play 2.0.1中上载的文件目录?

Java 如何更改play 2.0.1中上载的文件目录?,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我试图在application.conf文件中指定attachments.path属性,但没有效果 在Play2.0.1的文档中,我没有找到任何解释如何更改上传文件目录的内容 我遗漏了什么吗?尽管在application.conf中没有这样的变量,但您可以轻松地添加它并在方法中使用。随你怎么称呼它,即: application.conf中的新行: myUploadPath = "/home/your-account/some/custom/upload/folder/" 根据报告: 使用这种方

我试图在application.conf文件中指定attachments.path属性,但没有效果

在Play2.0.1的文档中,我没有找到任何解释如何更改上传文件目录的内容


我遗漏了什么吗?

尽管在
application.conf中没有这样的变量,但您可以轻松地添加它并在方法中使用。随你怎么称呼它,即:

application.conf
中的新行:

myUploadPath = "/home/your-account/some/custom/upload/folder/"
根据报告:


使用这种方法,您可以甚至应该在重命名之前执行
filename clash
检查,以防止随机覆盖。

谢谢您的回复,Marcus,但这并没有解决我的问题。我必须控制所驻留的文件夹。但是,我通过使用target/start-Djava.io.tmpdir=Oh启动应用程序解决了这个问题。您没有指定需要控制tmp dir:)谢谢提示,但是您仍然可以使用我的示例将上传的文件从tmp保存到磁盘上的exacto位置。不,抱歉,我没有很好地指定它。但是你的代码肯定是有用的。你能添加你的注释作为答案并将其标记为正确的吗?
public static Result upload() {
    MultipartFormData body = request().body().asMultipartFormData();
    MultipartFormData.FilePart picture = body.getFile("picture");
    if (picture != null) {
        String fileName = picture.getFilename();
        String contentType = picture.getContentType();
        File file = picture.getFile();

        // added lines
        String myUploadPath = Play.application().configuration().getString("myUploadPath");
        file.renameTo(new File(myUploadPath, fileName));

        return ok("file saved as " + myUploadPath + fileName);
    } else {
        flash("error", "Missing file");
        return redirect(routes.Application.uploadform());
    }
}