File io 将图像存储到本地系统上的指定位置

File io 将图像存储到本地系统上的指定位置,file-io,playframework,playframework-2.0,File Io,Playframework,Playframework 2.0,我正在使用Play Framework 2.0.4。以下是我尝试过的代码: public static Result save()引发FileNotFoundException{ Form tenantForm=Form(Tenant.class).bindFromRequest(); Form tenForm=Form(Ten.class).bindFromRequest(); Long tenantid=tenForm.get().tenant\u id; Http.MultipartFor

我正在使用Play Framework 2.0.4。以下是我尝试过的代码:

public static Result save()引发FileNotFoundException{
Form tenantForm=Form(Tenant.class).bindFromRequest();
Form tenForm=Form(Ten.class).bindFromRequest();
Long tenantid=tenForm.get().tenant\u id;
Http.MultipartFormData body=request().body().asMultipartFormData();
Http.MultipartFormData.FilePart picture=body.getFile(“logo_url”);
如果(图片!=null){
字符串文件名=picture.getFilename();
字符串contentType=picture.getContentType();
File File=picture.getFile();
tenantForm.get().logo_url=file.getPath();
tenantForm.get().save();
返回重定向(
routes.Application.index()
);
}否则{
闪存(“错误”、“缺少文件”);
返回重定向(
routes.Project.ctstenant(0,“名称”,“asc”,“名称”,“租户ID”)
);
}
}
它会将图像存储在临时文件夹中。我希望它存储在指定的文件夹中。请举例说明


谢谢您的帮助。

您可以将文件从临时文件夹移动到文件存储目录。下面是如何移动上载文件的示例:

//定义文件存储路径
公共静态最终字符串fileStoragePath=“D:\\filestorage\\”;
//处理表单提交操作
公共静态结果保存(){
//绑定请求逻辑
...
如果(图片!=null){
字符串文件名=picture.getFilename();
字符串contentType=picture.getContentType();
File File=picture.getFile();
//将消息记录到控制台
Logger.info(“原始文件名=“+fileName+
“带内容类型”+内容类型);
//重命名文件或将其移动到存储目录
if(file.renameTo(新文件(fileStoragePath+fileName))){
Logger.info(“成功地将文件移动到”+file.getAbsolutePath());
}否则{
Logger.info(“在“+file.getAbsolutePath()上移动文件失败”);
}
//保存文件名或使用blob(由您选择)
...
}
}

请注意,在成功移动或重命名上载的文件之前,
fileStoragePath
上定义的路径必须可用


你为什么不把文件从临时文件移到你想要的地方呢?