From 42fecef285c712f2a8d9b1b6371edc6ea9d9fac6 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Mon, 27 Feb 2017 22:26:21 +0000 Subject: [PATCH] Upload in gewaehltes Verzeichnis eingebaut und einige Modes bei Codemirror hinzugefuegt --- src/java/de/uhilger/filecms/api/UploadServlet.java | 44 ++++++++++++++------- web/ui/index.html | 2 + web/ui/ui.js | 19 +++++++-- 3 files changed, 45 insertions(+), 20 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; + } } } diff --git a/web/ui/index.html b/web/ui/index.html index 6e21a5a..9138c0f 100644 --- a/web/ui/index.html +++ b/web/ui/index.html @@ -201,9 +201,11 @@ <!-- Skripte --> <script src="/jslib/jquery/jquery.min.js"></script> <script src="/jslib/codemirror/lib/codemirror.js"></script> + <script src="/jslib/codemirror/mode/javascript/javascript.js"></script> <script src="/jslib/codemirror/mode/xml/xml.js"></script> <script src="/jslib/codemirror/mode/htmlmixed/htmlmixed.js"></script> + <script src="/jslib/codemirror/mode/clike/clike.js"></script> <script src="/jslib/codemirror/addon/display/fullscreen.js"></script> <script src="/jslib/tinymce/tinymce.min.js"></script> diff --git a/web/ui/ui.js b/web/ui/ui.js index ef2382b..1896636 100644 --- a/web/ui/ui.js +++ b/web/ui/ui.js @@ -179,6 +179,7 @@ } }; fd.append('dateiauswahlfeld', datei); + fd.append('pfad', pfad); xhr.send(fd); } @@ -328,11 +329,11 @@ } } -function fm_text_edit(content) { +function fm_text_edit(content, mode) { fm_filectls_hide(); $('.codeeditor-space').show(); $('.code-editor-container').show(); - fm_code_edit(content); + fm_code_edit(content, mode); openEditor = 'text'; } @@ -394,7 +395,15 @@ var u = '../svc' + m; fm_get(u, "text", function(resp) { if(typ == 'text') { - fm_text_edit(resp); + var mode = "text/x-java"; + if(fname.endsWith('js')) { + mode = 'javascript'; + } else if(fname.endsWith('xml')) { + mode = 'xml'; + } else if(fname.endsWith('properties')) { + mode = 'xml'; + } + fm_text_edit(resp, mode); } else { fm_dok_edit(resp); } @@ -622,10 +631,10 @@ /* ---- codemirror editor handling -------- */ -function fm_code_edit(content) { +function fm_code_edit(content, m) { cm = CodeMirror.fromTextArea(document.getElementById("editspace"), { lineNumbers: true, - mode: "xml", + mode: m, viewportMargin : Infinity, extraKeys: { "F9": function(cm) { -- Gitblit v1.9.3