From bf9988e6527aa26b0b3f627ec50e0bb7275f9655 Mon Sep 17 00:00:00 2001 From: gebeto Date: Wed, 24 Dec 2025 00:23:59 +0200 Subject: [PATCH] handle option on upload --- src/network/CrossPointWebServer.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/network/CrossPointWebServer.cpp b/src/network/CrossPointWebServer.cpp index 1cba9cf..686fd94 100644 --- a/src/network/CrossPointWebServer.cpp +++ b/src/network/CrossPointWebServer.cpp @@ -66,7 +66,8 @@ void CrossPointWebServer::begin() { server->on("/api/files", HTTP_GET, [this] { handleFileListData(); }); // Upload endpoint with special handling for multipart form data - server->on("/upload", HTTP_POST, [this] { handleUploadPost(); }, [this] { handleUpload(); }); + server->on("/upload", HTTP_ANY, [this] { handleUploadPost(); }, [this] { handleUpload(); }); + // Create folder endpoint server->on("/mkdir", HTTP_POST, [this] { handleCreateFolder(); }); @@ -403,13 +404,24 @@ void CrossPointWebServer::handleUpload() const { } void CrossPointWebServer::handleUploadPost() const { - server->enableCORS(true); - if (uploadSuccess) { - server->send(200, "text/plain", "File uploaded successfully: " + uploadFileName); - } else { - const String error = uploadError.isEmpty() ? "Unknown error during upload" : uploadError; - server->send(400, "text/plain", error); + if (server->method() == HTTP_OPTIONS) { + server->enableCORS(true); + server->send(204, "text/plain", ""); + return; } + + if (server->method() == HTTP_POST) { + server->enableCORS(true); + if (uploadSuccess) { + server->send(200, "text/plain", "File uploaded successfully: " + uploadFileName); + } else { + const String error = uploadError.isEmpty() ? "Unknown error during upload" : uploadError; + server->send(400, "text/plain", error); + } + return; + } + + server->send(405, "text/plain", "Method Not Allowed"); } void CrossPointWebServer::handleCreateFolder() const {