mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-08 12:36:52 +03:00
Process related file update: no folder content redirect
This commit is contained in:
@@ -717,7 +717,8 @@ static esp_err_t upload_post_handler(httpd_req_t *req)
|
|||||||
|
|
||||||
/* Close file upon upload completion */
|
/* Close file upon upload completion */
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
ESP_LOGI(TAG, "File reception complete");
|
LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "File saved: " + string(filename));
|
||||||
|
ESP_LOGI(TAG, "File reception completed");
|
||||||
|
|
||||||
std::string directory = std::string(filepath);
|
std::string directory = std::string(filepath);
|
||||||
size_t zw = directory.find("/");
|
size_t zw = directory.find("/");
|
||||||
@@ -736,21 +737,27 @@ static esp_err_t upload_post_handler(httpd_req_t *req)
|
|||||||
// ESP_LOGD(TAG, "Directory danach 2: %s", directory.c_str());
|
// ESP_LOGD(TAG, "Directory danach 2: %s", directory.c_str());
|
||||||
|
|
||||||
/* Redirect onto root to see the updated file list */
|
/* Redirect onto root to see the updated file list */
|
||||||
httpd_resp_set_status(req, "303 See Other");
|
if (strcmp(filename, "/config/config.ini") == 0 ||
|
||||||
httpd_resp_set_hdr(req, "Location", directory.c_str());
|
strcmp(filename, "/config/ref0.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref0_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref1.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref1_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/reference.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref0.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref0_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref1.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref1_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/reference.jpg") == 0 )
|
||||||
|
{
|
||||||
|
httpd_resp_set_status(req, HTTPD_200); // Avoid reloading of folder content
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
httpd_resp_set_status(req, "303 See Other"); // Reload folder content after upload
|
||||||
|
}
|
||||||
|
|
||||||
/* Redirect onto root to see the updated file list */
|
|
||||||
httpd_resp_set_status(req, "303 See Other");
|
|
||||||
httpd_resp_set_hdr(req, "Location", directory.c_str());
|
httpd_resp_set_hdr(req, "Location", directory.c_str());
|
||||||
httpd_resp_sendstr(req, "File uploaded successfully");
|
httpd_resp_sendstr(req, "File uploaded successfully");
|
||||||
|
|
||||||
/*
|
|
||||||
if (strcmp(filepath, CONFIG_FILE) == 0) {
|
|
||||||
ESP_LOGD(TAG, "New config found. Reload handler.");
|
|
||||||
gpio_handler_deinit();
|
|
||||||
MQTTdestroy();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
@@ -844,9 +851,10 @@ static esp_err_t delete_post_handler(httpd_req_t *req)
|
|||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Deleting file: " + string(filename));
|
|
||||||
/* Delete file */
|
/* Delete file */
|
||||||
unlink(filepath);
|
unlink(filepath);
|
||||||
|
LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "File deleted: " + string(filename));
|
||||||
|
ESP_LOGI(TAG, "File deletion completed");
|
||||||
|
|
||||||
directory = std::string(filepath);
|
directory = std::string(filepath);
|
||||||
size_t zw = directory.find("/");
|
size_t zw = directory.find("/");
|
||||||
@@ -863,16 +871,29 @@ static esp_err_t delete_post_handler(httpd_req_t *req)
|
|||||||
directory = directory.substr(start_fn, found - start_fn + 1);
|
directory = directory.substr(start_fn, found - start_fn + 1);
|
||||||
directory = "/fileserver" + directory;
|
directory = "/fileserver" + directory;
|
||||||
ESP_LOGD(TAG, "Directory danach 4: %s", directory.c_str());
|
ESP_LOGD(TAG, "Directory danach 4: %s", directory.c_str());
|
||||||
}
|
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
/* Redirect onto root to see the updated file list */
|
||||||
|
if (strcmp(filename, "/config/config.ini") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref0.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref0_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref1.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/ref1_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/config/reference.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref0.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref0_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref1.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/ref1_org.jpg") == 0 ||
|
||||||
|
strcmp(filename, "/img_tmp/reference.jpg") == 0 )
|
||||||
|
{
|
||||||
|
httpd_resp_set_status(req, HTTPD_200); // Avoid reloading of folder content
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
httpd_resp_set_status(req, "303 See Other"); // Reload folder content after upload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
/* Redirect onto root to see the updated file list */
|
|
||||||
httpd_resp_set_status(req, "303 See Other");
|
|
||||||
httpd_resp_set_hdr(req, "Location", directory.c_str());
|
httpd_resp_set_hdr(req, "Location", directory.c_str());
|
||||||
httpd_resp_sendstr(req, "File successfully deleted");
|
httpd_resp_sendstr(req, "File successfully deleted");
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
@@ -929,7 +950,7 @@ std::string unzip_new(std::string _in_zip_file, std::string _target_zip, std::st
|
|||||||
|
|
||||||
// Get and print information about each file in the archive.
|
// Get and print information about each file in the archive.
|
||||||
int numberoffiles = (int)mz_zip_reader_get_num_files(&zip_archive);
|
int numberoffiles = (int)mz_zip_reader_get_num_files(&zip_archive);
|
||||||
LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Numbers of files to be extracted: " + to_string(numberoffiles));
|
LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Files to be extracted: " + to_string(numberoffiles));
|
||||||
|
|
||||||
sort_iter = 0;
|
sort_iter = 0;
|
||||||
{
|
{
|
||||||
@@ -993,7 +1014,7 @@ std::string unzip_new(std::string _in_zip_file, std::string _target_zip, std::st
|
|||||||
|
|
||||||
string filename_zw = zw + SUFFIX_ZW;
|
string filename_zw = zw + SUFFIX_ZW;
|
||||||
|
|
||||||
ESP_LOGI(TAG, "Filename to extract: %s, Zwischenfilename: %s", zw.c_str(), filename_zw.c_str());
|
ESP_LOGI(TAG, "File to extract: %s, Temp. Filename: %s", zw.c_str(), filename_zw.c_str());
|
||||||
|
|
||||||
std::string folder = filename_zw.substr(0, filename_zw.find_last_of('/'));
|
std::string folder = filename_zw.substr(0, filename_zw.find_last_of('/'));
|
||||||
MakeDir(folder);
|
MakeDir(folder);
|
||||||
@@ -1097,7 +1118,7 @@ void unzip(std::string _in_zip_file, std::string _target_directory){
|
|||||||
// Save to File.
|
// Save to File.
|
||||||
zw = std::string(archive_filename);
|
zw = std::string(archive_filename);
|
||||||
zw = _target_directory + zw;
|
zw = _target_directory + zw;
|
||||||
ESP_LOGD(TAG, "Filename to extract: %s", zw.c_str());
|
ESP_LOGD(TAG, "File to extract: %s", zw.c_str());
|
||||||
FILE* fpTargetFile = fopen(zw.c_str(), "wb");
|
FILE* fpTargetFile = fopen(zw.c_str(), "wb");
|
||||||
fwrite(p, 1, (uint)uncomp_size, fpTargetFile);
|
fwrite(p, 1, (uint)uncomp_size, fpTargetFile);
|
||||||
fclose(fpTargetFile);
|
fclose(fpTargetFile);
|
||||||
|
|||||||
Reference in New Issue
Block a user