From 2736d16a8b1804f7291a56a147f76ef3584d6619 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 04 Jul 2022 19:35:31 +0800
Subject: [PATCH] fix 上传模板和查看栏目修改

---
 src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java |   79 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 69 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
index a6d4283..32d768d 100644
--- a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
+++ b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
@@ -1,10 +1,10 @@
 package com.xcong.farmer.cms.common.utils;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
 
 /**
  * @author wzy
@@ -30,16 +30,75 @@
         return dir + fileName;
     }
 
-    public static void zipUpload(File file, String templateDir, String staticDir) throws IOException {
-        ZipFile zipFile = new ZipFile(file);
+    public static void zipUpload(String zipPath, String templateDir) throws IOException {
+        FileInputStream fis = new FileInputStream(zipPath);
+        ZipInputStream zipIs = new ZipInputStream(fis);
 
-        Enumeration<? extends ZipEntry> entries = zipFile.entries();
-        if (entries.hasMoreElements()) {
-            ZipEntry zipEntry = entries.nextElement();
-            if (zipEntry.isDirectory()) {
-//                zipEntry.
+        ZipEntry ze = null;
+        try {
+            while ((ze = zipIs.getNextEntry()) != null) {
+                File zfile = new File(path(templateDir, ze.getName()));
+                if (ze.isDirectory()) {
+                    if (!zfile.exists()) {
+                        zfile.mkdirs();
+                    }
+                    zipIs.closeEntry();
+                } else {
+                    byte[] data = new byte[1024];
+                    FileOutputStream fos = new FileOutputStream(zfile);
+                    int i = 0;
+
+                    while ((i = zipIs.read(data)) != -1) {
+                        fos.write(data, 0, i);
+                    }
+                    zipIs.closeEntry();
+                    fos.close();
+                }
             }
-            System.out.println(zipEntry.getName());
+
+            fis.close();
+            zipIs.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    public static void upload(File file, String dir) {
+        if (file.isDirectory()) {
+            File[] files = file.listFiles();
+            if (files == null) {
+                return;
+            }
+
+            for (File dirFile : files) {
+                upload(dirFile, path(dir, dirFile.getName()));
+            }
+        } else {
+            outputFile(file, dir);
+        }
+    }
+
+    public static void outputFile(File file, String outputDir) {
+        try {
+            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
+
+            int count;
+            int buffer = 1024;
+            byte[] dataByte = new byte[buffer];
+
+            FileOutputStream out = new FileOutputStream(path(outputDir, file.getName()));
+
+            BufferedOutputStream bos = new BufferedOutputStream(out, buffer);
+            while((count = bis.read(dataByte, 0, buffer)) != -1) {
+                bos.write(dataByte, 0 ,count);
+            }
+
+            bos.flush();
+            bos.close();
+            bis.close();
+        } catch (IOException e) {
+            e.printStackTrace();
         }
     }
 }

--
Gitblit v1.9.1