/**
*
* @param req HttpServletRequest
* @param path 需要上傳到的目錄
* @return 返回上傳的文件所在的目錄
*/
@SuppressWarnings("unchecked")
public static String uploadFile(HttpServletRequest req, String path) {
boolean isMultipart = ServletFileUpload.isMultipartContent(req);
String strTemp = req.getSession().getServletContext()
.getRealPath("WEB-INF");
if (isMultipart) {
// The simplest case
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Configure a repository (to ensure a secure temp location is used)
// ServletContext servletContext =
// this.getServletConfig().getServletContext();
// File repository = (File)
// servletContext.getAttribute("javax.servlet.context.tempdir");
// factory.setRepository(repository);
File file = new File(strTemp);
factory.setRepository(file);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
List<FileItem> items = null;
try {
items = upload.parseRequest(req);
} catch (FileUploadException e1) {
e1.printStackTrace();
return null;
}
for (Iterator<FileItem> it = items.iterator(); it.hasNext();) {
FileItem fi = it.next();
try {
String filepath = req.getSession().getServletContext()
.getRealPath(path);
File folder = new File(filepath);
if (!folder.exists()) {
folder.mkdir();
}
// System.out.println(strTemp);
UUID uuid = UUID.randomUUID();
String finalFileName = uuid + "-" +fi.getName();;
fi.write(new File(filepath + File.separator + finalFileName));
System.out.println("上傳文件成功!");
return path + "/" + finalFileName;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
return null;
}