java - spring中如何获取项目目录的路径?

标签 java spring

我正在尝试使用我的 jsp 表单上传图像文件。我能够成功上传它,但不在我想要的目录中。

@Controller
public class ProductController {
  private Path path;
  
  @Autowired
  private ProductService productService;
  
  @RequestMapping(value="/admin/addProduct")
  public String addProduct() {
    return "addProduct";
  }
  
  @RequestMapping(value="/admin/addProduct", method= RequestMethod.POST)
  public String addNewProduct(@ModelAttribute("product") Product products,
  BindingResult result,HttpServletRequest request,@RequestParam("prodImage") 
  MultipartFile file) {
    System.out.println("adding product");
        System.out.println(path);
        if(result.hasErrors()) {
      return "addProduct";
    }
    productService.saveProduct(products);
    
    MultipartFile productImage = file;
    String rootDir = request.getSession().getServletContext().getRealPath("/");
    System.out.println(rootDir);
    path = Paths.get(rootDir+"//WEB-INF//resources//images//"+products.getId()+
    ".jpg");
    System.out.println("path :"+path);
    if(productImage != null && !productImage.isEmpty()) {
      System.out.println("inside not null product image");
      try {
        productImage.transferTo(new File(path.toString()));
                System.out.println("after saving image");

      }catch (Exception ex) {
        ex.printStackTrace();
        throw new RuntimeException("product image saving failed",ex);
      }
    }
        
    return "redirect:/admin/productInventory";
  }
  
  @RequestMapping("/admin/productInventory")
  public String productInventory() {
    return "productInventory";
    
  }

}

这是正在打印的当前目录位置:-

/mnt/7A46BE1454633621/eclipseworkspace/ecommerce/target/ecommerce/

  path :/mnt/7A46BE1454633621/eclipseworkspace/ecommerce/target/ecommerce/ 
WEB-INF/resources/images/5.jpg

我想将我的图像上传到 WEB-INF/resources/images 中。我该怎么做?

enter image description here

最佳答案

您需要检查类路径是否设置,然后您可以使用classpath:/WEB-INF/resources/images/路径来上传和下载图像。

关于java - spring中如何获取项目目录的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647393/

相关文章:

java - Spring Mockito - Junit Controller 测试 - 模拟一项服务

java - 如何使用 Spring MVC 将文件上传到项目目录?

java - 使用数组实现配置堆栈以构建科赫雪花

java - 在firebase数据获取方法中创建无限循环

java抛出异常而不捕获它?

java - 保存与两个现有实体有关系的新实体

java - 教程中的 Restful 服务应用程序未在浏览器中运行 : Whitelabel Error Page

java - 如何在 spring mvc&thymeleaf 中进行验证和异常

java - 在 Java 中使用泛型过滤集合

java - 从 firebase 读取数据没有 setter 字段错误 Firebase