import os import tempfile import mimetypes class UploadTool: """ Handles uploaded files and stores them temporarily. """ def __init__(self): self.temp_files = [] def save_uploads(self, uploaded_files): """ Save uploaded Streamlit files to temporary storage. Returns: [ { "name": "...", "path": "...", "type": "...", "size": ... } ] """ saved_files = [] if not uploaded_files: return saved_files for file in uploaded_files: suffix = os.path.splitext(file.name)[1] temp_file = tempfile.NamedTemporaryFile( delete=False, suffix=suffix ) temp_file.write(file.getbuffer()) temp_file.close() file_info = { "name": file.name, "path": temp_file.name, "type": mimetypes.guess_type(file.name)[0], "size": os.path.getsize(temp_file.name) } saved_files.append(file_info) self.temp_files.append(temp_file.name) return saved_files def cleanup(self): """ Delete all temporary uploaded files. """ for file_path in self.temp_files: try: if os.path.exists(file_path): os.remove(file_path) except Exception: pass self.temp_files.clear() # -------------------------------------------------- # Backward-compatible function # -------------------------------------------------- upload_tool = UploadTool() def save_uploads(uploaded_files): return upload_tool.save_uploads(uploaded_files) def cleanup_uploads(): upload_tool.cleanup()