From c95ff55dc9780a20b8ff979f5c1888a69223337d Mon Sep 17 00:00:00 2001
From: Ulrich <undisclosed>
Date: Wed, 17 Jun 2020 15:42:55 +0000
Subject: [PATCH] Encoding korrigiert

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

diff --git a/src/java/de/uhilger/filecms/api/FileMgr.java b/src/java/de/uhilger/filecms/api/FileMgr.java
index 40bd4bb..02a0029 100644
--- a/src/java/de/uhilger/filecms/api/FileMgr.java
+++ b/src/java/de/uhilger/filecms/api/FileMgr.java
@@ -37,7 +37,9 @@
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -194,8 +196,8 @@
         try {
           File targetFile = new File(getTargetDir(relPath), fileName);
 
-          //reader = new InputStreamReader(new FileInputStream(targetFile), "UTF8");
-          reader = new FileReader(targetFile);
+          reader = new InputStreamReader(new FileInputStream(targetFile), "UTF8");
+          //reader = new FileReader(targetFile);
           StringBuffer buf = new StringBuffer();
           char[] readBuffer = new char[1024];
           int charsRead = reader.read(readBuffer);
@@ -354,7 +356,12 @@
               }
             } else {
               if(operation == OP_MOVE) {
-                FileUtils.moveFileToDirectory(srcFile, targetDir, false);
+                String fname = srcFile.getName().toLowerCase();                
+                if(fname.endsWith(TNServlet.JPEG) || fname.endsWith(TNServlet.JPG) || fname.endsWith(TNServlet.PNG)) {
+                  moveImgFilesToDirectory(srcFile, srcDir, targetDir, false);
+                } else {
+                  FileUtils.moveFileToDirectory(srcFile, targetDir, false);
+                }
               } else {
                 FileUtils.copyFileToDirectory(srcFile, targetDir);              
               }
@@ -366,6 +373,20 @@
       logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
     }
     return result;
+  }
+  
+  private void moveImgFilesToDirectory(File srcFile, File srcDir, File targetDir, boolean createDestDir) throws IOException {
+    String fnameext = srcFile.getName();
+    int dotpos = fnameext.lastIndexOf(DOT);
+    String fname = fnameext.substring(0, dotpos);
+    String ext = fnameext.substring(dotpos);
+    logger.fine("fname: " + fname + ", ext: " + ext);
+    FileFilter fileFilter = new WildcardFileFilter(fname + "*" + ext);
+    File[] files = srcDir.listFiles(fileFilter);
+    for (int i = 0; i < files.length; i++) {
+      logger.fine(files[i].getName());
+      FileUtils.moveFileToDirectory(files[i], targetDir, createDestDir);
+    }      
   }
   
   public FileRef saveTextFileAs(String relPath, String fileName, String contents) {
@@ -418,7 +439,7 @@
     FileRef savedFile = null;
     try {
       targetFile.createNewFile();
-      FileWriter w = new FileWriter(targetFile);
+      FileWriter w = new FileWriter(targetFile, Charset.forName("UTF-8"));
       //w.write(StringEscapeUtils.unescapeHtml(contents));
       w.write(contents);
       w.flush();

--
Gitblit v1.9.3