From cfc1869716f245658559acebf5651ca0968107a8 Mon Sep 17 00:00:00 2001 From: Ulrich <undisclosed> Date: Tue, 28 Feb 2017 11:28:14 +0000 Subject: [PATCH] Bestimmung des Orts der Dateiablage ueber Parameter oder hart kodiert fuer WebBox-Struktur --- src/java/de/uhilger/filecms/api/UploadServlet.java | 44 +++++++++++++++++++++++++++++--------------- 1 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/java/de/uhilger/filecms/api/UploadServlet.java b/src/java/de/uhilger/filecms/api/UploadServlet.java index 1a07401..927e25c 100644 --- a/src/java/de/uhilger/filecms/api/UploadServlet.java +++ b/src/java/de/uhilger/filecms/api/UploadServlet.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.InputStream; import java.security.Principal; +import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.logging.Level; @@ -56,6 +57,8 @@ public static final String DESC = "file-cms uploader"; private static final Logger logger = Logger.getLogger(UploadServlet.class.getName()); + + private String targetDirStr; /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> @@ -68,6 +71,7 @@ */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //logger.log(Level.INFO, "start"); boolean isMultipart = ServletFileUpload.isMultipartContent(request); @@ -91,6 +95,7 @@ // Process the uploaded items Iterator<FileItem> iter = items.iterator(); + FileItem fileItem = null; while (iter.hasNext()) { FileItem item = iter.next(); @@ -100,10 +105,13 @@ //File base = repository.getParentFile().getParentFile().getParentFile().getParentFile(); //File webapps = new File(base, "webapps"); //logger.info(webapps.getAbsolutePath()); - File targetDir = getTargetDir(request, PUB_DIR_NAME); - logger.log(Level.FINE, "rufe processUploadedFile"); - processUploadedFile(targetDir, item, true); + fileItem = item; } + } + File targetDir = getTargetDir(request, targetDirStr); + if(targetDir != null && fileItem != null) { + logger.log(Level.FINER, "targetDir before upload: " + targetDir.getAbsolutePath()); + processUploadedFile(targetDir, fileItem, true); } } catch (Exception ex) { logger.log(Level.SEVERE, null, ex); @@ -129,17 +137,20 @@ } private File getTargetDir(HttpServletRequest request, String relPath) { - logger.finer(relPath); - String targetPath = null; - if(relPath.startsWith(PUB_DIR_NAME)) { - targetPath = PUB_DIR_PATH + getUserName(request) + "/" + relPath.substring(PUB_DIR_NAME.length()); - } else if(relPath.startsWith(HOME_DIR_NAME)) { - targetPath = HOME_DIR_PATH + getUserName(request) + "/" + relPath.substring(HOME_DIR_NAME.length()); - } else { - // kann eigentlich nicht sein.. + File targetDir = null; + if(relPath != null) { + logger.finer(relPath); + String targetPath = null; + if(relPath.startsWith(PUB_DIR_NAME)) { + targetPath = PUB_DIR_PATH + getUserName(request) + relPath.substring(PUB_DIR_NAME.length()); + } else if(relPath.startsWith(HOME_DIR_NAME)) { + targetPath = HOME_DIR_PATH + getUserName(request) + relPath.substring(HOME_DIR_NAME.length()); + } else { + // kann eigentlich nicht sein.. + } + logger.finer(targetPath); + targetDir = new File(getBase().getAbsolutePath(), targetPath); } - logger.finer(targetPath); - File targetDir = new File(getBase().getAbsolutePath(), targetPath); return targetDir; } @@ -172,8 +183,8 @@ long sizeInBytes = item.getSize(); // Process a file upload if (writeToFile) { - //logger.log(Level.INFO, "writeToFile " + fileName); File uploadedFile = new File(targetDir, fileName); + logger.log(Level.FINER, "writeToFile " + uploadedFile.getAbsolutePath()); item.write(uploadedFile); } else { InputStream uploadedStream = item.getInputStream(); @@ -189,8 +200,11 @@ if (item.isFormField()) { String name = item.getFieldName(); String value = item.getString(); - //logger.log(Level.INFO, "field name: " + name + ", value: " + value); + logger.log(Level.FINER, "field name: " + name + ", value: " + value); //... + if(name.equals("pfad")) { + targetDirStr = value; + } } } -- Gitblit v1.9.3