上传的文件未保存在webapps

时间:2017-04-24 09:33:48

标签: spring eclipse spring-mvc file-upload multipart

我在这里得到同样的问题是我的代码

@RequestMapping(value = "/admin/productInventory/addProduct", method = RequestMethod.POST)
    public String addProductInInventory(@ModelAttribute("product") Product product, HttpServletRequest request) {
        productDao.addProduct(product);

        MultipartFile productImage = product.getProductImage();
        String rootDirectory = request.getSession().getServletContext().getRealPath("/  ");
        System.out.println("rootDirectory >>>"+rootDirectory);
        path =  Paths.get(rootDirectory + "\\WEB-INF\\resources\\images\\" +product.getProductName()+"_"+product.getProductId());

        if(productImage != null && !productImage.isEmpty()) {
            try{
                productImage.transferTo(new File(path.toString()));
                System.out.println("actual path>>>" +path.toString());
            }catch(Exception e){
                e.printStackTrace();
                throw new RuntimeException("Product image saving faild.");
            }
            }
        return "redirect:/admin/productInventory";
    }

现在该文件已保存在路径>>

C:\用户\拉詹\文件\工作空间STS-3.7.3.RELEASE.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \ wtpwebapps \ MusicStore \ WEB-INF \资源\图像\

但是上传的文件没有显示在我的ide中的package explorer中的webapps / resources / imaged中。

1 个答案:

答案 0 :(得分:3)

这可能是因为你直接从eclipse运行你的项目。执行此操作时,这是我们的MySqlDataAdapter da = new MySqlDataAdapter("", con); da.SelectCommand.Parameters.AddWithValue("@sid", specializationId); da.SelectCommand.Parameters.AddWithValue("@uid", userId); da.SelectCommand.Parameters.AddWithValue("@counter", counter); da.Fill(dt); 所在的位置(在工作区内)。 eclipse使用此路径。所以在这种情况下,WAR是上下文基本路径。这就是文件存储在那里的原因。尝试从终端运行tomcat,你将在所需的位置获取它。