main
py 30 lines 1.13 KB
Raw
1 from helpers.api import ApiHandler, Request, Response
2 from helpers import files
3 from helpers.security import safe_filename
4
5
6 class UploadFile(ApiHandler):
7 async def process(self, input: dict, request: Request) -> dict | Response:
8 if "file" not in request.files:
9 raise Exception("No file part")
10
11 file_list = request.files.getlist("file") # Handle multiple files
12 saved_filenames = []
13
14 for file in file_list:
15 if file and self.allowed_file(file.filename): # Check file type
16 if not file.filename:
17 continue
18 filename = safe_filename(file.filename)
19 if not filename:
20 continue
21 file.save(files.get_abs_path("usr/uploads", filename))
22 saved_filenames.append(filename)
23
24 return {"filenames": saved_filenames} # Return saved filenames
25
26
27 def allowed_file(self,filename):
28 return True
29 # ALLOWED_EXTENSIONS = {"png", "jpg", "jpeg", "txt", "pdf", "csv", "html", "json", "md"}
30 # return "." in filename and filename.rsplit(".", 1)[1].lower() in ALLOWED_EXTENSIONS