MultipartFileのzipファイルの解凍方法は?
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メソッドは、指定されたdestinationパスにzipファイルを解凍します。MultipartFileオブジェクトとdestinationパスを渡すだけで大丈夫です。ただし、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-webやcommons-ioをインポートしていることを確認してください。