From 8a43111118b7634cd3f658d3af03836e5c832132 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 10 Aug 2022 11:30:31 +0800
Subject: [PATCH] fix
---
src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java | 85 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 74 insertions(+), 11 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..17c62ad 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
@@ -22,24 +22,87 @@
public static String path(String path, String fileName) {
File file = new File(path);
- if (!file.isDirectory()){
+ if (file.exists() && !file.isDirectory()){
return "";
+ }
+
+ if (!file.exists()) {
+ file.mkdirs();
}
String dir = path(path);
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