From 90ccfbd7875b7f1438f8b4268010e40b2c91b645 Mon Sep 17 00:00:00 2001 From: ulrich Date: Thu, 07 Nov 2024 14:45:47 +0000 Subject: [PATCH] Statuscode ergaenzt --- src/de/uhilger/neon/FileServer.java | 23 +++++++++++++---------- 1 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/de/uhilger/neon/FileServer.java b/src/de/uhilger/neon/FileServer.java index cfb8ce6..b38245a 100644 --- a/src/de/uhilger/neon/FileServer.java +++ b/src/de/uhilger/neon/FileServer.java @@ -55,20 +55,21 @@ public static final String STR_EMPTY = ""; 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 +77,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