package com.base.util;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
public class UploadFile {
public UploadFile() {
}
/**
* 获取文件路径
* @param file
* @param request
*/
public static String getUploadFilePath(MultipartFile file,HttpServletRequest request){
OutputStream outputStream = null;
String str= "";
if (file != null) {
String filePathDir = "uploadFiles/"
+ new SimpleDateFormat("yyyyMMdd").format(new Date());
String fileRealPathDir = request.getSession().getServletContext().getRealPath(filePathDir); //获取本地存储路径
java.io.File fileSaveFile = new java.io.File(fileRealPathDir);
if (!fileSaveFile.exists())
fileSaveFile.mkdirs();
System.out.println(file.getOriginalFilename());
str="/"+filePathDir+"/"+UUID.randomUUID().toString().trim().replaceAll("-", "").toLowerCase() + "."
+file.getOriginalFilename().split("\\.")[1];
java.io.File newFile = new java.io.File(request.getSession().getServletContext()
.getRealPath("/")
+str); //新建一个文件
try {
outputStream =new FileOutputStream(newFile);
outputStream.write(file.getBytes());
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
outputStream.flush();
outputStream.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return str;
}
return null;
}
/**
* 获取http路径
* @param request
* @return
*/
public static String getBasePath(HttpServletRequest request) {
String basePath = "";
if (request.getServerPort() == 80) {
basePath = request.getScheme() + "://" + request.getServerName()
+ request.getContextPath();
} else {
basePath = request.getScheme() + "://" + request.getServerName()
+ ":" + request.getServerPort() + request.getContextPath();
}
return basePath;
}
/**
* 获取http+文件路径
* @param request
* @param file
* @return
*/
public static String getAllPath(HttpServletRequest request,MultipartFile file) {
if (ServletFileUpload.isMultipartContent(request)) {
String allPath=getBasePath(request)+getUploadFilePath(file, request);
return allPath;
}
return null;
}
}