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

`
// 图片上传地址(Linux)
//private static String IMAGE_UPLOAD_URL = /usr/local/apache-tomcat-picture/webapps
// 图片上传地址(window)
private static String IMAGE_UPLOAD_URL = D:/apache-tomcat-picture/webapps
/** 上传图片到Tomcat的webapps目录下 **/
public static 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 static 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;
}
`