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"));
}
}
`