使用 Spring MVC 在 Linux 服务器中存储上传图像的位置
Where to store uploaded images in Linux server using Spring MVC
我写了一个代码来上传图片(学生的个人资料图片)到服务器 运行 linux environment.The 代码如下所示
@RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException {
if(!file.isEmpty())
{
try
{
String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte[] bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())
{
dir.mkdir();
}
File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);
}
catch (Exception e)
{
System.out.print(e);
}
}
return "successFileUpload";
}
我已经存储在“/resources”中 folder.but 问题是,每当我生成整个应用程序的 war 文件并在服务器中部署时,它会刷新“/resources”文件夹并删除旧的上传 images.Is 有任何方式或路径,我可以上传图像。
我将图像存储在我的 Tomcat 家庭位置中,因为它将在我的项目文件夹 (war) 之外并在 tomcat.
中
String rootPath = System.getProperty("catalina.home");
File dir = new File(rootPath + File.separator + "images");
以上代码行将在 tomcat 基目录中创建一个名为 'images'.
的文件夹
这是存储图像的最佳方式之一。
我的做法是:
- 在服务器中创建一个目录。例如:
/myImages
- 然后授予 tomcat 用户
完全权限
你现在可以走了。我在某处读到你不应该将你的东西保存在 /resources
文件夹中,因为它使你的应用程序独立于你正在使用的容器:使用 tomcat 你可以使用 catalina.home
但如果你转移到另一个容器
这是简单的方法
System.out.println(System.getProperty("user.dir"));
我写了一个代码来上传图片(学生的个人资料图片)到服务器 运行 linux environment.The 代码如下所示
@RequestMapping(value = "/updatePhoto",method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("id") String id,
@RequestParam("file") MultipartFile file,
HttpServletRequest request,
Model model) throws IOException {
if(!file.isEmpty())
{
try
{
String relativePath="/resources";
String absolutePath=request.getServletContext().getRealPath(relativePath);
System.out.print(absolutePath);
byte[] bytes=file.getBytes();
File dir=new File(absolutePath);
if(!dir.exists())
{
dir.mkdir();
}
File uploadFile=new File(dir.getAbsolutePath()+File.separator+id+".jpg");
BufferedOutputStream outputStream=new BufferedOutputStream(new FileOutputStream(uploadFile));
outputStream.write(bytes);
outputStream.close();
model.addAttribute("uploadMessage","image uploaded for id"+id);
}
catch (Exception e)
{
System.out.print(e);
}
}
return "successFileUpload";
}
我已经存储在“/resources”中 folder.but 问题是,每当我生成整个应用程序的 war 文件并在服务器中部署时,它会刷新“/resources”文件夹并删除旧的上传 images.Is 有任何方式或路径,我可以上传图像。
我将图像存储在我的 Tomcat 家庭位置中,因为它将在我的项目文件夹 (war) 之外并在 tomcat.
中String rootPath = System.getProperty("catalina.home");
File dir = new File(rootPath + File.separator + "images");
以上代码行将在 tomcat 基目录中创建一个名为 'images'.
的文件夹这是存储图像的最佳方式之一。
我的做法是:
- 在服务器中创建一个目录。例如:
/myImages
- 然后授予 tomcat 用户 完全权限
你现在可以走了。我在某处读到你不应该将你的东西保存在 /resources
文件夹中,因为它使你的应用程序独立于你正在使用的容器:使用 tomcat 你可以使用 catalina.home
但如果你转移到另一个容器
这是简单的方法
System.out.println(System.getProperty("user.dir"));