Java 如何更改play 2.0.1中上载的文件目录?
我试图在application.conf文件中指定attachments.path属性,但没有效果 在Play2.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中没有这样的变量,但您可以轻松地添加它并在方法中使用。随你怎么称呼它,即:
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());
}
}