【发布时间】:2012-06-06 13:26:17
【问题描述】:
我想将上传的图像保存到部署在 Tomcat 上的 Spring 3 MVC 应用程序中的特定文件夹中
我的问题是我无法将上传的图像文件保存到运行应用程序的主机。
这是我尝试过的:
private void saveFile(MultipartFile multipartFile, int id) throws Exception {
String destination = "/images/" + id + "/" + multipartFile.getOriginalFilename();
File file = new File(destination);
multipartFile.transferTo(file);
}
结果:FileNotFoundException - 是的,我确实想创建这个文件!?!
我尝试使用context.getRealPath 或getResources("destination"),但没有任何成功。
如何在我的应用程序的特定文件夹中使用我的多部分文件的内容创建一个新文件?
【问题讨论】:
-
您在尝试 context.getRealPath 或 getResources("destination") 时遇到了哪些错误,请参阅 stackoverflow.com/questions/2970643/…
-
嗯,好的,谢谢,getRealPath 不起作用,因为如果应用程序被部署到一个 war 文件中并且没有被提取,它会返回 null!它在战争容器之外工作!但是有没有办法在战争中获取文件的路径?
-
我不会这么说的。将文件添加到已部署的战争中并没有真正意义。这是你想做的吗?
-
不,不是,但我读到有些网络服务器不提取war文件,所以我认为要使上述示例成为可能,必须有一种方法可以在该war目录中写入。因此 getRealPath 不是正确的方法,因为它会返回 null。幸运的是,它正在我的 tomcat 上运行,但只是为了让我的视野更加开阔,我想知道是否还有其他解决方案
-
FileNotFoundException 表示您没有文件夹 /images/{id}/,您应该先创建文件夹。
标签: spring file tomcat file-upload