image / tools /upload.py
Muthuraja18's picture
Update tools/upload.py (#26)
1516d2e
Raw
History Blame Contribute Delete
1.99 kB
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()