如何使用Spring MVC将图像上传到webapp / resources / images目录?
问题内容:
在将产品详细信息添加到资源库之前,我有一个资源库类要存储来自MultipartFile的图像到webapp / resources / images目录中?
@Override
public void addProduct(Product product) {
Resource resource = resourceLoader.getResource("file:webapp/resources/images");
MultipartFile proudctImage = product.getProudctImage();
try {
proudctImage.transferTo(new File(resource.getFile()+proudctImage.getOriginalFilename()));
} catch (IOException e) {
throw new RuntimeException(e);
}
listOfProducts.add(product);
}
我的存储库类是ResourceLoaderAware。我正在获取fileNotFoundException,“
imagesDesert.jpg”是我要上传的图像
java.io.FileNotFoundException: webapp\resources\imagesDesert.jpg (The system cannot find the path specified)
问题答案:
最后,我可以解决此问题,我们不需要指定 file:
前缀,而且默认情况下,resourceLoader.getResource()
它将在我们的Web应用程序的根目录中查找资源,因此无需指定webapp
文件夹名称。所以最终以下代码对我有用
@Override
public void addProduct(Product product) {
MultipartFile proudctImage = product.getProudctImage();
if (!proudctImage.isEmpty()) {
try {
proudctImage.transferTo(resourceLoader.getResource("resources/images/"+product.getProductId()+".png").getFile());
} catch (Exception e) {
throw new RuntimeException("Product Image saving failed", e);
}
}
listOfProducts.add(product);
}