From ac72fe96abe90bee2d3ca5c1e2cab2cc5e9c1e39 Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Mon, 05 Mar 2018 06:53:07 +0000
Subject: [PATCH] WEB-INF und META-INF ausgeblendet

---
 src/java/de/uhilger/filecms/api/FileMgr.java |   89 ++++++++++++++++++++++++++++++--------------
 1 files changed, 60 insertions(+), 29 deletions(-)

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 8e63002..563734f 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -18,14 +18,10 @@
 
 package de.uhilger.filecms.api;
 
-import de.uhilger.filecms.data.Bild;
 import de.uhilger.filecms.data.FileRef;
 import de.uhilger.filecms.pub.AbstractComparator;
 import de.uhilger.filecms.pub.FileNameComparator;
-import java.awt.Container;
-import java.awt.Image;
-import java.awt.MediaTracker;
-import java.awt.Toolkit;
+import de.uhilger.wbx.Bild;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
@@ -44,6 +40,7 @@
 import java.util.logging.Logger;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
+import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.io.FileUtils;
 
 /**
@@ -93,7 +90,7 @@
   private List<FileRef> listInt(String relPath, String orderBy, String order) {
     Bild bild = new Bild();
     List<FileRef> files = new ArrayList();
-    if (!relPath.startsWith(".")) {
+    if (!relPath.startsWith(".") && !relPath.contains("WEB-INF") && !relPath.contains("META-INF")) {
       if (relPath.length() == 0) {
         FileRef namedPublicFolder = new FileRef(PUB_DIR_NAME, true);
         logger.finer(namedPublicFolder.getAbsolutePath());
@@ -129,9 +126,11 @@
               fname = fname.substring(0, fname.length() - 1);
             }
             logger.fine(fname);
-            FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
-            ref.setMimetype(bild.getMimeType(fileArray[i]));
-            files.add(ref);
+            if(!fname.contains("WEB-INF") && !fname.contains("META-INF")) {
+              FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
+              ref.setMimetype(bild.getMimeType(fileArray[i]));
+              files.add(ref);
+            }
           }
         }
       }
@@ -385,28 +384,24 @@
         nurname = bildName.substring(0, dotpos);
       }
 
-      Image image = Toolkit.getDefaultToolkit().getImage(original.getAbsolutePath());
-      MediaTracker mediaTracker = new MediaTracker(new Container());
-      mediaTracker.addImage(image, 0);
-      try {
-        mediaTracker.waitForID(0);
+          // 120, 240, 500, 700, 1200
 
-        if (!mediaTracker.isErrorAny()) {
-          for (int i = 0; i < Bild.GR.length; i++) {
-            StringBuffer buf = new StringBuffer();
-            buf.append(nurname);
-            buf.append(bild.getVariantenName(i));
-            buf.append(ext);
-            File newImgFile = new File(dir, buf.toString());
-            if (!newImgFile.exists()) {
-              logger.fine(original.getAbsolutePath() + " " + newImgFile.getAbsolutePath());
-              bild.writeImageFile(image, bild.getVariantenGroesse(i), bild.getMimeType(original), newImgFile.getAbsolutePath());
-              //bild.writeImageFile(image, photo.getVariantenGroesse(i), photo.getMimetype(), photo.getAbsolutePath(basisPfad), photo.getVariantenName(basisPfad, i));
-            }
-          }
+      
+      for (int i = 0; i < Bild.GR.length; i++) {
+        StringBuffer buf = new StringBuffer();
+        buf.append(nurname);
+        buf.append(bild.getVariantenName(i));
+        buf.append(ext);
+        File newImgFile = new File(dir, buf.toString());
+        try {
+          Thumbnails.of(original)
+                  .size(bild.getVariantenGroesse(i), bild.getVariantenGroesse(i))
+                  .keepAspectRatio(true)
+                  .outputQuality(0.7)
+                  .toFile(newImgFile);
+        } catch (IOException ex) {
+          logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
         }
-      } catch (IOException | InterruptedException ex) {
-        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
       }
       return "ok";
     } else {
@@ -414,6 +409,42 @@
     }
   }
   
+  public String bildRotieren(String relPath, String bildName) {
+    if (!relPath.startsWith(".")) {
+      File dir = getTargetDir(relPath);
+      File original = new File(dir, bildName);
+
+      String ext = "";
+      String nurname = bildName;
+      int dotpos = bildName.indexOf(".");
+      if (dotpos > -1) {
+        ext = bildName.substring(dotpos);
+        nurname = bildName.substring(0, dotpos);
+      }
+
+      StringBuffer buf = new StringBuffer();
+      buf.append(nurname);
+      buf.append("-rot");
+      buf.append(ext);
+      File newImgFile = new File(dir, buf.toString());
+      
+      logger.fine("original: " + original.getAbsolutePath() + " newImgFile: " + newImgFile.getAbsolutePath());
+
+      try {
+        Thumbnails.of(original)
+                .scale(1)
+                .rotate(90)
+                .toFile(newImgFile);
+      } catch (IOException ex) {
+        logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
+      }
+
+
+      return "ok";
+    } else {
+      return "Pfad micht erlaubt.";
+    }
+  }
   public String extractZipfile(String relPath, String filename) {
     String result = null;
     if (!relPath.startsWith(".")) {    

--
Gitblit v1.9.3