工具类
public class UnZipUtil {
public static List<MultipartFile> UnZip(MultipartFile multipartFiles){
String originalFilename = multipartFiles.getOriginalFilename();
if (!originalFilename.endsWith(".zip")){
throw new RuntimeException(originalFilename+"文件格式错误!请上传.zip格式文件");
}
List<MultipartFile> multipartFileList = new ArrayList<>();
ZipInputStream zipInputStream = null;
BufferedInputStream bufferedInputStream = null;
String zipEntryFile;
try {
zipInputStream = new ZipInputStream(multipartFiles.getInputStream());
bufferedInputStream = new BufferedInputStream(zipInputStream);
ZipEntry zipEntry;
while ((zipEntry = zipInputStream.getNextEntry())!=null){
zipEntryFile = zipEntry.getName();
Assert.notNull(zipEntryFile,"压缩文件中子文件的名字格式不正确");
byte[] bytes = new byte[(int)zipEntry.getSize()];
bufferedInputStream.read(bytes,0,(int)zipEntry.getSize());
InputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
MultipartFile multipartFile = MockMultipartFile(zipEntryFile,zipEntryFile,"JPG",byteArrayInputStream);
multipartFileList.add(multipartFile);
byteArrayInputStream.close();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bufferedInputStream!=null){
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (zipInputStream!=null){
try {
zipInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return multipartFileList;
}
}