上传压缩包并解压到指定文件夹

zip类文件上传的方法

@RegisterToSMP(serviceDisplay = "上传zip文件并解压")
	@RequestMapping(value = "apiName", method = RequestMethod.POST)
	public DataResult uploadFile(@RequestParam("zipFile") MultipartFile zipFile) throws ZipException{
		DataResult dr = new DataResult();
		// 得到上传时的文件名
		String zipName = zipFile.getOriginalFilename();
		log.info("zipname:" + zipName);
		// 得到文件后缀
		String suffix = zipName.substring(zipName.lastIndexOf(".") + 1);
		log.info("suffix:" + suffix);
		String path = "F:\\img";
		File file = new File(path+"\\"+zipName);
		// 如果不存在当前目录
		if (!file.getParentFile().exists()) {
			// 创建多层目录
			file.getParentFile().mkdirs();
		}
		try {
		    // 压缩包上传到file
			zipFile.transferTo(file);
			dr.setSuccess(true);
		} catch (IllegalStateException e) {
			dr.setSuccess(false);
			e.printStackTrace();
		} catch (IOException e) {
			dr.setSuccess(false);
			e.printStackTrace();
		}
		/**
		 * 开始解压
		 */
		// 创建zipfile指向磁盘上的zip文件
		ZipFile zfile = new ZipFile(file);
		// 解压目录
		String desdir = "F:\\新建文件夹";
		// 解压到desdir目录下
		try {
			zfile.extractAll(desdir);
			dr.setSuccess(true);
		} catch (ZipException e) {
			e.printStackTrace();
			dr.setSuccess(false);
		}
		return dr;
	}

解压用的ZipFile ,使用的依赖:

   <dependency>
    	<groupId>net.lingala.zip4j</groupId>
        <artifactId>zip4j</artifactId>
        <version>1.3.2</version>
    </dependency>

apipost调试入参图:
上传压缩包并解压到指定文件夹

上一篇:【无标题】


下一篇:动态路由协议OSPF学习①