multipartfile的zip如何解压

avatar
作者
筋斗云
阅读量:1

要解压一个 MultipartFile(MultipartFile 是 Spring 框架中的类,用于处理上传的文件),你可以使用 java.util.zip.ZipInputStream 类。以下是一个解压 MultipartFile 的 zip 文件的示例代码:

import org.springframework.web.multipart.MultipartFile;  import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream;  public class ZipFileUtil {      public static void unzip(MultipartFile file, String destination) throws IOException {         try (ZipInputStream zipInputStream = new ZipInputStream(file.getInputStream())) {             byte[] buffer = new byte[1024];             ZipEntry zipEntry = zipInputStream.getNextEntry();             while (zipEntry != null) {                 String fileName = zipEntry.getName();                 File newFile = new File(destination + File.separator + fileName);                 if (zipEntry.isDirectory()) {                     newFile.mkdirs();                 } else {                     // 如果父目录不存在,则创建父目录                     File parent = newFile.getParentFile();                     if (!parent.exists()) {                         parent.mkdirs();                     }                     try (FileOutputStream fos = new FileOutputStream(newFile)) {                         int length;                         while ((length = zipInputStream.read(buffer)) > 0) {                             fos.write(buffer, 0, length);                         }                     }                 }                 zipEntry = zipInputStream.getNextEntry();             }         }     } } 

这个 unzip 方法会将 zip 文件解压到指定的目标路径 destination。你只需要传入一个 MultipartFile 对象和目标路径即可。注意,你需要处理 IOException 异常。

示例用法:

import org.springframework.web.multipart.MultipartFile;  public class Main {      public static void main(String[] args) {         MultipartFile file = ...; // 获取上传的 MultipartFile 对象         String destination = "C:\\path\\to\\destination"; // 指定解压路径         try {             ZipFileUtil.unzip(file, destination);             // 解压成功         } catch (IOException e) {             e.printStackTrace();             // 解压失败         }     } } 

请确保你已经导入相应的依赖,例如 spring-webcommons-io

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!