| @@ -1,5 +1,6 @@ | |||
| import datetime | |||
| import hashlib | |||
| import os | |||
| import uuid | |||
| from typing import Any, Literal, Union | |||
| @@ -38,7 +39,12 @@ class FileService: | |||
| source_url: str = "", | |||
| ) -> UploadFile: | |||
| # get file extension | |||
| extension = filename.split(".")[-1].lower() | |||
| extension = os.path.splitext(filename)[1].lstrip(".").lower() | |||
| # check if filename contains invalid characters | |||
| if any(c in filename for c in ["/", "\\", ":", "*", "?", '"', "<", ">", "|"]): | |||
| raise ValueError("Filename contains invalid characters") | |||
| if len(filename) > 200: | |||
| filename = filename.split(".")[0][:200] + "." + extension | |||