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