//上传文件到服务器
String tempPath = req.getSession().getServletContext().getRealPath("webResources/templet/");
String filename = importFile.getOriginalFilename(); // @RequestParam("importFile") CommonsMultipartFile importFile 作为参数传递后台
//解压Zip文件
String zipPath = tempPath + File.separator + filename;
String zipFolder = filename.substring(0, filename.length() - 4);
String decompressPath = tempPath + File.separator + zipFolder;
List filePathList =readByApacheZipFile(zipPath, decompressPath);
@SuppressWarnings("unchecked")
public List readByApacheZipFile(String zipPath, String decompressPath) throws IOException, FileNotFoundException, ZipException { File f = new File(decompressPath); if (!f.exists()) { f.mkdirs(); } List filePathList = new ArrayList(); ZipFile zf = new ZipFile(zipPath, "GBK");//支持中文 Enumeration e = zf.getEntries(); while (e.hasMoreElements()) { ZipEntry ze2 = (ZipEntry) e.nextElement(); String entryName = ze2.getName(); String path = decompressPath + "/" + entryName; if (ze2.isDirectory()) { System.out.println("正在创建解压目录 - " + entryName); File decompressDirFile = new File(path); if (!decompressDirFile.exists()) { decompressDirFile.mkdirs(); } } else { System.out.println("正在创建解压文件 - " + entryName); String fileDir = path.substring(0, path.lastIndexOf("/")); File fileDirFile = new File(fileDir); if (!fileDirFile.exists()) { fileDirFile.mkdirs(); } BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path)); BufferedInputStream bi = new BufferedInputStream(zf.getInputStream(ze2)); byte[] readContent = new byte[1024]; int readCount = bi.read(readContent); while (readCount != -1) { bos.write(readContent, 0, readCount); readCount = bi.read(readContent); } bos.close(); String curDateStr = PortalUtils.getCurrentDateTimeString(); String renamePath = decompressPath + "/" + entryName.substring(0, entryName.lastIndexOf("/") + 1) + curDateStr + "_" + entryName.substring(entryName.lastIndexOf("/") + 1, entryName.length()); File ff = new File(path); ff.renameTo(new File(renamePath)); filePathList.add(renamePath); } } zf.close(); return filePathList; }