// 判断是相对路径还是绝对路径
if(this.isAbsolutePath(uploadDir)){
// 绝对路径
finalPath = uploadDir + "/" + fileName;
tailPath = fileName;
}else{
// 相对路径(bug,尾部有一个‘/’ 与uploadDir重复)
String realPath = uploadFileDS.getRequest().getRealPath("").replaceAll("\\\\", "/");
realPath = realPath.substring(0, realPath.length() - 1);
finalPath = realPath + uploadDir + "/" + fileName;
tailPath = uploadDir + "/" + fileName;
}
/**
* 判断是否绝对路径
* 当路径以 / 开头则为相对路径,否则视为绝对路径
* @param uploadDir
* @return
*/
private boolean isAbsolutePath(String uploadDir) {
if(uploadDir.startsWith("/")){
return false;
}
return true;
}
/**
* 获取项目所在路径
* @return
*/
public String getRealPath() {//通过类加载器获取jar包的绝对路径
String realPath = this.getClass().getClassLoader().getResource("").getFile();
java.io.File file = new java.io.File(realPath);
realPath = file.getParentFile().getAbsolutePath(); //获取jar包的上级目录
try {//路径decode转码
realPath = java.net.URLDecoder.decode(realPath, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return realPath ;
}