Dateiverwaltung für die WebBox
ulrich
2017-02-14 8e51b77b850f1335d9b3d32660c7b0ec27ecb2d3
FileMgr Api in Arbeit
2 files modified
46 ■■■■■ changed files
src/java/de/uhilger/filecms/api/FileMgr.java 32 ●●●●● patch | view | raw | blame | history
web/WEB-INF/web.xml 14 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -1,23 +1,41 @@
package de.uhilger.filecms.api;
import de.uhilger.filesystem.FileRef;
import de.uhilger.transit.web.RequestKontext;
import de.uhilger.transit.web.WebKontext;
import java.io.File;
import java.util.logging.Logger;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
/**
 *
 * @author ulrich
 */
public class FileMgr implements WebKontext {
public class FileMgr implements WebKontext, RequestKontext {
  private static final Logger logger = Logger.getLogger(FileMgr.class.getName());
  
  public static final String FILE_BASE = "fileBase";
  
  private ServletContext ctx;
  private HttpServletRequest req;
  
  public FileRef getBase() {
    FileRef ref = null;
    String fileBase = getServletContext().getInitParameter(FILE_BASE);
    //String fileBase = getServletContext().getInitParameter(FILE_BASE);
    // -Dfilecms.base=/pfad/zu/daten
    String fileBase = System.getProperty("filecms.base");
    File file = new File(fileBase);
    logger.info(file.getAbsolutePath());
    logger.info(getWebappsDir().getAbsolutePath());
    ref = new FileRef(file.getAbsolutePath(), file.isDirectory());
    return ref;
  }
  private File getWebappsDir() {
    File cfile = new File(this.getClass().getResource(this.getClass().getSimpleName() + ".class").getFile());
    String path = cfile.getAbsolutePath();
    return new File(path.substring(0, path.indexOf(req.getContextPath())));
  }
  @Override
@@ -30,5 +48,15 @@
    this.ctx = servletContext;
  }
  @Override
  public HttpServletRequest getRequest() {
    return req;
  }
  @Override
  public void setRequest(HttpServletRequest r) {
    this.req = r;
  }
  
}
web/WEB-INF/web.xml
@@ -4,8 +4,20 @@
    <display-name>file-cms</display-name>
    <context-param>
        <param-name>fileBase</param-name>
        <param-value>../../../daten/</param-value>
        <param-value>daten</param-value>
    </context-param>
    <servlet>
        <servlet-name>TransitRS</servlet-name>
        <servlet-class>de.uhilger.transit.web.TransitServletRS</servlet-class>
        <init-param>
            <param-name>klassen</param-name>
            <param-value>de.uhilger.filecms.api</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>TransitRS</servlet-name>
        <url-pattern>/rpc/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30