mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
report on invalid extension - Validate file name extension on file upload #1210
This commit is contained in:
@@ -53,8 +53,10 @@ const UploadFileForm: FC = () => {
|
|||||||
await sendUpload(files[0]).catch((err) => {
|
await sendUpload(files[0]).catch((err) => {
|
||||||
if (err.message === 'The user aborted a request') {
|
if (err.message === 'The user aborted a request') {
|
||||||
toast.warning(LL.UPLOAD() + ' ' + LL.ABORTED());
|
toast.warning(LL.UPLOAD() + ' ' + LL.ABORTED());
|
||||||
|
} else if (err.message === 'Network Error') {
|
||||||
|
toast.warning('Invalid file extension');
|
||||||
} else {
|
} else {
|
||||||
toast.warning(err.message);
|
toast.error(err.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,7 +42,9 @@ void UploadFileService::handleUpload(AsyncWebServerRequest * request, const Stri
|
|||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
md5[0] = '\0';
|
md5[0] = '\0';
|
||||||
return; // unsupported file type
|
handleError(request, 406); // Not Acceptable - unsupported file type
|
||||||
|
request->client()->abort();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_firmware) {
|
if (is_firmware) {
|
||||||
@@ -122,18 +124,17 @@ void UploadFileService::uploadComplete(AsyncWebServerRequest * request) {
|
|||||||
request->send(response);
|
request->send(response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen(md5) == 32) {
|
if (strlen(md5) == 32) {
|
||||||
auto * response = new AsyncJsonResponse(false, 256);
|
auto * response = new AsyncJsonResponse(false, 256);
|
||||||
JsonObject root = response->getRoot();
|
JsonObject root = response->getRoot();
|
||||||
root["md5"] = md5;
|
root["md5"] = md5;
|
||||||
response->setLength();
|
response->setLength();
|
||||||
request->send(response);
|
request->send(response);
|
||||||
// AsyncWebServerResponse * response = request->beginResponse(201, "text/plain", md5); // created
|
|
||||||
// request->send(response);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleError(request, 403); // send the forbidden response
|
handleError(request, 406); // send the forbidden response
|
||||||
}
|
}
|
||||||
|
|
||||||
void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
||||||
@@ -143,9 +144,9 @@ void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// send the error code to the client and record the error code in the temp object
|
// send the error code to the client and record the error code in the temp object
|
||||||
request->_tempObject = new int(code);
|
|
||||||
AsyncWebServerResponse * response = request->beginResponse(code);
|
AsyncWebServerResponse * response = request->beginResponse(code);
|
||||||
request->send(response);
|
request->send(response);
|
||||||
|
handleEarlyDisconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UploadFileService::handleEarlyDisconnect() {
|
void UploadFileService::handleEarlyDisconnect() {
|
||||||
|
|||||||
Reference in New Issue
Block a user