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调试入参图: