diff --git a/src/js/admin-general-view.js b/src/js/admin-general-view.js index 0310301..60c592a 100644 --- a/src/js/admin-general-view.js +++ b/src/js/admin-general-view.js @@ -69,6 +69,9 @@ module.exports = { await fetch("/api/config/restore", { method: "PUT", body: formData, + headers:{ + 'Type':'zip' + } }); console.log('done'); // SvelteComponents.showDialog("Message", { diff --git a/src/py/bbctrl/APIHandler.py b/src/py/bbctrl/APIHandler.py index c21ca56..29bde59 100644 --- a/src/py/bbctrl/APIHandler.py +++ b/src/py/bbctrl/APIHandler.py @@ -53,7 +53,7 @@ class APIHandler(bbctrl.RequestHandler): def prepare(self): self.json = {} - if self.request.body: + if self.request.body and self.request.headers.get('Type') != 'zip': try: self.json = tornado.escape.json_decode(self.request.body) except ValueError: diff --git a/src/py/bbctrl/Web.py b/src/py/bbctrl/Web.py index 8a30241..735ee22 100644 --- a/src/py/bbctrl/Web.py +++ b/src/py/bbctrl/Web.py @@ -295,18 +295,16 @@ class ConfigDownloadHandler(bbctrl.APIHandler): class ConfigRestoreHandler(bbctrl.APIHandler): def put(self): - zip_file = self.request.files['zipfile'][0] - self.get_log('ConfigRestoreHandler').info('Request Hit') - # if 'zipfile' not in self.request.files: - # raise HTTPError(400, 'No file uploaded') + if 'zipfile' not in self.request.files: + raise HTTPError(400, 'No file uploaded') - # zip_file = self.request.files['zipfile'][0] - # temp_dir = './config-temp'; + zip_file = self.request.files['zipfile'][0] + temp_dir = './config-temp'; - # if not os.path.exists(temp_dir): - # os.mkdir(temp_dir) + if not os.path.exists(temp_dir): + os.mkdir(temp_dir) - # files_path = os.path.join(temp_dir, zip_file['filename']) + files_path = os.path.join(temp_dir, zip_file['filename']) # try: # with open(files_path, 'wb') as f: