From 45e5222888794127bc43d2e17277a74fbc19d52a Mon Sep 17 00:00:00 2001 From: ulrich Date: Fri, 08 Nov 2024 17:02:25 +0000 Subject: [PATCH] Statuscode ergaenzt --- src/de/uhilger/neon/FileServer.java | 24 ++++++++++++++---------- 1 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/de/uhilger/neon/FileServer.java b/src/de/uhilger/neon/FileServer.java index cfb8ce6..86aef24 100644 --- a/src/de/uhilger/neon/FileServer.java +++ b/src/de/uhilger/neon/FileServer.java @@ -53,22 +53,24 @@ public static final String STR_COMMA = ","; public static final String STR_DOT = "."; public static final String STR_EMPTY = ""; + public static final String STR_EQUAL = "="; public void serveFile(HttpExchange exchange) throws IOException { - String fName = new HttpHelper().getFileName(exchange); - if (fName.startsWith(".")) { - HttpResponder fs = new HttpResponder(); - fs.sendNotFound(exchange, fName); - } else { - File fileToDeliver = new File((String) exchange + String fName = exchange.getRequestURI().getPath(); + try { + fName = new HttpHelper().getFileName(exchange); + String fBase = (String) exchange .getHttpContext().getAttributes() - .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName); + .getOrDefault(ATTR_FILE_BASE, STR_EMPTY); + //File fileToDeliver = new File((String) exchange + // .getHttpContext().getAttributes() + // .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName); + File fileToDeliver = new File(fBase, fName); Headers headers = exchange.getRequestHeaders(); if (headers.containsKey(RANGE_HEADER)) { new PartialFileServer().serveFileParts(exchange, fileToDeliver); } else { if (fName.length() < 1 || fName.endsWith(STR_SLASH)) { - //HttpHelper helper = new HttpHelper(); File welcomeFile = tryWelcomeFiles(exchange, fName); if(welcomeFile != null) { fileToDeliver = welcomeFile; @@ -76,9 +78,11 @@ } new HttpResponder().serveFile(exchange, fileToDeliver); } - } + } catch(IllegalArgumentException ex) { + new HttpResponder().sendNotFound(exchange, fName); + } } - + public File tryWelcomeFiles(HttpExchange e, String fName) { boolean notFound = true; File file = null; -- Gitblit v1.9.3