6
0
Prechádzať zdrojové kódy

added some error messages and extended handling of file extensions during upload

Dimitri Korsch 3 rokov pred
rodič
commit
5ab89c53b8

+ 5 - 5
pycs/frontend/endpoints/data/UploadFile.py

@@ -34,11 +34,11 @@ class UploadFile(View):
         project = self.db.project(identifier)
 
         if project is None:
-            return abort(404)
+            return abort(404, "Project not found")
 
         # abort if external storage is used
         if project.external_data:
-            return abort(400)
+            return abort(400, "Project uses external data, but a file was uploaded")
 
         # get upload path and id
         self.data_folder = project.data_folder
@@ -50,14 +50,14 @@ class UploadFile(View):
 
         # abort if there is no file entry in uploaded data
         if 'file' not in files.keys():
-            return abort(400)
+            return abort(400, "No file entry was found in uploaded data")
 
         # detect file type
         try:
             ftype, frames, fps = tpool.execute(file_info,
                                                self.data_folder, self.file_id, self.file_extension)
-        except ValueError:
-            return abort(400)
+        except ValueError as e:
+            return abort(400, str(e))
 
         # add to project files
         with self.db:

+ 5 - 3
pycs/util/FileParser.py

@@ -14,12 +14,14 @@ def file_info(data_folder: str, file_name: str, file_ext: str):
     :return: file type, frame count, frames per second
     """
     # determine file type
-    if file_ext in ['.jpg', '.png']:
+    if file_ext.lower() in ['.jpg', '.png']:
         ftype = 'image'
-    elif file_ext in ['.mp4']:
+
+    elif file_ext.lower() in ['.mp4']:
         ftype = 'video'
+
     else:
-        raise ValueError
+        raise ValueError(f"Unsupported file extension: {file_ext}!")
 
     # determine frames and fps for video files
     if ftype == 'image':