Fix HTTP invalid file type upload

This commit is contained in:
Theo Arends
2026-05-17 11:59:20 +02:00
parent cfe25959cd
commit 2c2a28cae1
2 changed files with 8 additions and 3 deletions
+2 -1
View File
@@ -389,6 +389,7 @@ enum TopicOptions { CMND, STAT, TELE, nu1, RESULT_OR_CMND, RESULT_OR_STAT, RESUL
// Upload type used by HandleUploadLoop() to route incoming data.
// Value 0 is invalid/unset. Each upload endpoint must set the appropriate
// type before HandleUploadLoop() processes the first data block.
// UPL_NONE - No valid type
// UPL_TASMOTA - OTA firmware update (/u2)
// UPL_SETTINGS - Settings backup restore (/u2)
// UPL_EFM8BB1 - Sonoff RF bridge EFM8BB1 firmware
@@ -397,7 +398,7 @@ enum TopicOptions { CMND, STAT, TELE, nu1, RESULT_OR_CMND, RESULT_OR_STAT, RESUL
// UPL_SHD - Shelly dimmer firmware
// UPL_CCL - CC2530 Zigbee firmware via CCLoader
// UPL_UFSFILE - Filesystem file upload (/ufsu)
enum UploadTypes { UPL_TASMOTA = 1, UPL_SETTINGS, UPL_EFM8BB1, UPL_TASMOTACLIENT, UPL_EFR32, UPL_SHD, UPL_CCL, UPL_UFSFILE };
enum UploadTypes { UPL_NONE, UPL_TASMOTA, UPL_SETTINGS, UPL_EFM8BB1, UPL_TASMOTACLIENT, UPL_EFR32, UPL_SHD, UPL_CCL, UPL_UFSFILE };
enum ExecuteCommandPowerOptions { POWER_OFF, POWER_ON, POWER_TOGGLE, POWER_BLINK, POWER_BLINK_STOP, POWER_OFF_FORCE,
POWER_OFF_NO_STATE = 8, POWER_ON_NO_STATE, POWER_TOGGLE_NO_STATE,
@@ -3457,8 +3457,11 @@ void HandleUpgradeFirmwareStart(void) {
void HandleUploadDone(void) {
if (!HttpCheckPriviledgedAccess()) { return; }
uint32_t upload_file_type = Web.upload_file_type;
Web.upload_file_type = UPL_NONE;
#if defined(USE_ZIGBEE_EZSP)
if ((UPL_EFR32 == Web.upload_file_type) && !Web.upload_error && BUpload.ready) {
if ((UPL_EFR32 == upload_file_type) && !Web.upload_error && BUpload.ready) {
BUpload.ready = false; // Make sure not to follow thru again
// GUI xmodem
ZigbeeUploadStep1Done(FlashWriteStartSector(), BUpload.spi_hex_size);
@@ -3475,7 +3478,7 @@ void HandleUploadDone(void) {
WSContentStart_P(PSTR(D_INFORMATION));
if (!Web.upload_error) {
WSContentSend_P(HTTP_SCRIPT_RELOAD_TIME,
(UPL_TASMOTA == Web.upload_file_type) ? HTTP_OTA_RESTART_RECONNECT_TIME : HTTP_RESTART_RECONNECT_TIME); // Refesh main web ui after OTA upgrade
(UPL_TASMOTA == upload_file_type) ? HTTP_OTA_RESTART_RECONNECT_TIME : HTTP_RESTART_RECONNECT_TIME); // Refesh main web ui after OTA upgrade
}
WSContentSendStyle();
WSContentSend_P(PSTR("<div style='text-align:center;'><b>" D_UPLOAD " <font color='#"));
@@ -3537,6 +3540,7 @@ void HandleUploadLoop(void) {
static bool upload_error_signalled;
if (HTTP_USER == Web.state) { return; }
if (UPL_NONE == Web.upload_file_type) { return; } // Invalid or no file type so bail out
if (Web.upload_error) {
if (!upload_error_signalled) {