Bilder mit Neon 2 verwenden
ulrich
6 days ago 58f5c30897596a1139c579704ea9f92b62bc9bf9
src/de/uhilger/neon/image/ImageFilter.java
@@ -20,6 +20,7 @@
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.neon.FileServer;
import de.uhilger.neon.HttpHelper;
import java.io.IOException;
/**
@@ -60,19 +61,33 @@
  
  @Override
  public void doFilter(HttpExchange exchange, Chain chain) throws IOException {
    /*
      Regex fuer Bilder
      .+\.jpg|.+\.jpeg|.+\.png
      (Testen z.B. auf https://regexr.com/)
    */
    String pattern = (String) exchange.getHttpContext().getAttributes()
            .getOrDefault("imageFilterPattern", ".+\\.jpg|.+\\.jpeg|.+\\.png");
    String uriStr = exchange.getRequestURI().toString();
    //String fName = new HttpHelper().getFileName(exchange);
    String fName = exchange
            .getRequestURI()
            .getPath()
            .substring(exchange
                    .getHttpContext()
                    .getPath()
                    .length());
    ImageWorker worker = new ImageWorker();
    worker.createImages(exchange.getHttpContext().getAttributes().get(FileServer.ATTR_FILE_BASE).toString(),
            fName, uriStr);
    chain.doFilter(exchange);
    try {
      String fName = new HttpHelper().getFileName(exchange);
      if(uriStr.toLowerCase().matches(pattern)) {
        String fileBase = (String) exchange.getHttpContext().getAttributes()
                .get(FileServer.ATTR_FILE_BASE);
        String fileName = exchange
                .getRequestURI()
                .getPath()
                .substring(exchange
                        .getHttpContext()
                        .getPath()
                        .length());
        new ImageWorker().createImages(fileBase, fileName, uriStr);
      }
    } catch(IllegalArgumentException ex) {
      // ungueltiger Dateiname, keine Transformation noetig, tue nichts
    } finally {
      chain.doFilter(exchange);
    }
  }
  @Override