瀏覽代碼

博物馆照片库更新

yqc 1 月之前
父節點
當前提交
a7ad3b76dc

+ 13 - 0
yudao-module-museum/yudao-module-museum-biz/pom.xml

@@ -7,6 +7,19 @@
         <groupId>cn.iocoder.boot</groupId>
         <version>${revision}</version> <!-- 1. 修改 version 为 ${revision} -->
     </parent>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                    <compilerArgs>--enable-preview</compilerArgs>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging> <!-- 2. 新增 packaging 为 jar -->
 

+ 31 - 0
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumpicture/MuseumPictureController.java

@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
+import java.io.IOException;
+
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "博物馆-图片库")
@@ -88,4 +90,33 @@ public class MuseumPictureController {
         return success(BeanUtils.toBean(pageResult, MuseumPictureRespVO.class));
     }
 
+
+//    "图片解压"
+
+    public MuseumPictureController(MuseumPictureService museumPictureService) {
+        this.museumPictureService = museumPictureService;
+    }
+
+    public void handleUnzipRequest(String groupId, String zipFilePath) {
+        try {
+            museumPictureService.unzipAndAddToGroup(groupId, zipFilePath);
+            System.out.println("照片已成功解压到 " + "photos/" + groupId);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static void main(String[] args) {
+        MuseumPictureService museumPictureService = new MuseumPictureServicelmpl();
+        MuseumPictureController controller = new MuseumPictureController(museumPictureService);
+
+        // 示例 groupId 和 zip 文件路径
+        String groupId = "group1";
+        String zipFilePath = "path/to/your/photo.zip";
+
+        controller.handleUnzipRequest(groupId, zipFilePath);
+    }
+}
 }

+ 2 - 0
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumpicture/MuseumPictureService.java

@@ -38,4 +38,6 @@ public interface MuseumPictureService {
 
      PageResult<MuseumPictureDO> getPicturePage(PicturePageReqVO pageVO);
 
+//     解压并添加图片
+     void unzipAndAddToGroup(String groupId, String zipFilePath) throws Exception;
 }

+ 47 - 40
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumpicture/MuseumPictureServiceImpl.java

@@ -10,8 +10,14 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.util.List;
 import java.io.IOException;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import static cn.hutool.core.util.ZipUtil.unzip;
 
 @Service
 public  class MuseumPictureServiceImpl implements MuseumPictureService {
@@ -66,44 +72,45 @@ public  class MuseumPictureServiceImpl implements MuseumPictureService {
 //    }
 }
 
-//    public void unzipAndAddToGroup(String groupId, String zipFilePath) throws IOException {
-//    String photoGroupDir = "photos/" + groupId;
-//    File groupDir = new File(photoGroupDir);
-//    if (!groupDir.exists()) {
-//        groupDir.mkdirs();
-//    }
-//
-//    unzip(zipFilePath, photoGroupDir);
-//}
-//
-//private void unzip(String zipFilePath, String destDir) throws IOException {
-//    byte[] buffer = new byte[1024];
-//    try (
-//            FileInputStream fis = new FileInputStream(zipFilePath);
-//            ZipInputStream zis = new ZipInputStream(fis)
-//    ) {
-//        ZipEntry zipEntry = zis.getNextEntry();
-//        while (zipEntry != null) {
-//            String filePath = destDir + File.separator + zipEntry.getName();
-//            if (!zipEntry.isDirectory()) {
-//                extractFile(zis, buffer, filePath);
-//            } else {
-//                File dir = new File(filePath);
-//                dir.mkdir();
-//            }
-//            zis.closeEntry();
-//            zipEntry = zis.getNextEntry();
-//        }
-//        zis.closeEntry();
-//    }
-//}
-//
-//private void extractFile(ZipInputStream zis, byte[] buffer, String filePath) throws IOException {
-//    try (FileOutputStream fos = new FileOutputStream(filePath)) {
-//        int len;
-//        while ((len = zis.read(buffer)) > 0) {
-//            fos.write(buffer, 0, len);
-//        }
-//    }
-//}
+     @Override
+     public void unzipAndAddToGroup(String groupId, String zipFilePath) throws IOException {
+    String photoGroupDir = "photos/" + groupId;
+    File groupDir = new File(photoGroupDir);
+    if (!groupDir.exists()) {
+        groupDir.mkdirs();
+    }
+
+    unzip(zipFilePath, photoGroupDir);
+}
+
+    private void unzip(String zipFilePath, String destDir) throws IOException {
+    byte[] buffer = new byte[1024];
+    try (
+            FileInputStream fis = new FileInputStream(zipFilePath);
+            ZipInputStream zis = new ZipInputStream(fis)
+    ) {
+        ZipEntry zipEntry = zis.getNextEntry();
+        while (zipEntry != null) {
+            String filePath = destDir + File.separator + zipEntry.getName();
+            if (!zipEntry.isDirectory()) {
+                extractFile(zis, buffer, filePath);
+            } else {
+                File dir = new File(filePath);
+                dir.mkdir();
+            }
+            zis.closeEntry();
+            zipEntry = zis.getNextEntry();
+        }
+        zis.closeEntry();
+    }
+}
+
+private void extractFile(ZipInputStream zis, byte[] buffer, String filePath) throws IOException {
+    try (FileOutputStream fos = new FileOutputStream(filePath)) {
+        int len;
+        while ((len = zis.read(buffer)) > 0) {
+            fos.write(buffer, 0, len);
+        }
+    }
+}
 //}