我正在尝试使用我的 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 中。我该怎么做?
最佳答案
您需要检查类路径是否设置,然后您可以使用classpath:/WEB-INF/resources/images/
路径来上传和下载图像。
关于java - spring中如何获取项目目录的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647393/