java 上传图片到Tomcat的webapps目录下

// 图片上传地址(Linux)
  //private String IMAGE_UPLOAD_URL = /usr/local/apache-tomcat-picture/webapps
  // 图片上传地址(window)
  private String IMAGE_UPLOAD_URL = D:/apache-tomcat-picture/webapps


/** 上传图片到Tomcat的webapps目录下 **/
public String uploadFileInTomcatWebapps(MultipartFile file) throws IllegalStateException, IOException{
	if(null != file){
		// 获取上传文件的原始名称
		String originalFilename = file.getOriginalFilename();
		if (null != originalFilename && originalFilename.length() > 0) {
			// 生成新的图片名称
			String newFileName = genImageName() + originalFilename.substring(originalFilename.lastIndexOf("."));				
			// 获取Tomcat服务器所在的路径
			String tomcat_path = System.getProperty( "user.dir" );
			System.out.println("Tomcat服务器所在的路径: "+tomcat_path);
			// 获取Tomcat服务器所在路径的最后一个文件目录
			String bin_path = tomcat_path.substring(tomcat_path.lastIndexOf("/")+1,tomcat_path.length());
			System.out.println("Tomcat服务器所在路径的最后一个文件目录: "+bin_path);
			String pic_path = "";
			// 判断最后一个文件目录是否为bin目录
			if(("bin").equals(bin_path)){ 
				// 获取保存上传图片的文件路径
				pic_path = tomcat_path.substring(0,System.getProperty( "user.dir" ).lastIndexOf("/")) +"/webapps"+"/images/";
			}else{					
				pic_path = IMAGE_UPLOAD_URL+"/images/";
			}
			// 设置文件保存路径(文件存放按日期存放)
			String datePath = new DateTime().toString("/yyyy/MM/dd"); 
			File newFileDir = new File(pic_path+datePath);
			//如果不存在 则创建
            if (!newFileDir.exists()) {	            	
            	newFileDir.mkdirs();	           
            }
			// 将内存中的数据写入磁盘
            String savePath = newFileDir +"/" + newFileName;
            System.out.println("上传图片的路径:" + savePath);
			file.transferTo(new File(savePath));
			// 返回路径
			String url = "/images"+datePath+"/"+newFileName;				
			return url;
		}
	}
	return null;
}


/** 图片名生成 **/
public String genImageName() {
	//取当前时间的长整形值包含毫秒
	long millis = System.currentTimeMillis();
	//加上三位随机数
	Random random = new Random();
	int end3 = random.nextInt(999);
	//如果不足三位前面补0
	String str = millis + String.format("%03d", end3);		
	return str;
}


// 上传图片
    @RequestMapping(value = "/pictureb", method = { RequestMethod.GET, RequestMethod.POST})
       public String uploadPicture(MultipartFile upfile, HttpServletRequest request, HttpServletResponse response) {
	if (null != upfile) {				
		String upfileName = upfile.getOriginalFilename();
		upfileName = upfileName.toLowerCase();				
		if (upfileName.matches("^.*(jpg|png|gif)$")) {										
			try {						
				BufferedImage buff = ImageIO.read(upfile.getInputStream());
				if (null != buff && 0 != buff.getHeight() && 0 != buff.getWidth()) {																		
					String url = UploadPictureUtil.uploadFileInTomcatWebapps(upfile);
					if (StringUtils.isNoneBlank(url)) {												   
						return ReturnResult.objectToJson(ReturnResult.build(200, "上传成功 ",url));
					}else{					
						return ReturnResult.objectToJson(ReturnResult.build(300, "上传失败,请稍后再试"));
					}
				}else{
					return ReturnResult.objectToJson(ReturnResult.build(300, "存在未知风险,无法上传"));
				}
			} catch (Exception e) {
				e.printStackTrace();
				return ReturnResult.objectToJson(ReturnResult.build(500, "系统繁忙"));
			}
		}else{
			return ReturnResult.objectToJson(ReturnResult.build(300, "请选择正确格式的图片"));
		}				
	}else{
		return ReturnResult.objectToJson(ReturnResult.build(300, "参数异常null"));
	}
}