Files
NiceGUIEx/example_file_drop.py
2025-09-27 12:57:39 +02:00

40 lines
1.1 KiB
Python

from nicegui import ui
from typing import Dict, Any, List
import base64
from PIL import Image
import io
from niceguiex.components import FileDrop
from tempfile import SpooledTemporaryFile
@ui.page('/')
async def main_page():
ui.label('File Drop Demo').classes('text-h4 mb-4')
# Example 1: Multiple files with content
uploaded_files = ui.column().classes('w-full mt-4')
async def handle_multiple_files(file_name: str, file_type: str, file_content: SpooledTemporaryFile):
with uploaded_files:
with ui.card().classes('p-2 mb-2'):
ui.label(f"📄 {file_name}").classes('font-medium')
ui.label(f"Type: {file_type}").classes('text-sm text-gray-600')
ui.label('Multiple Files (returns list)').classes('text-h6 mb-2')
FileDrop(
on_upload=handle_multiple_files,
multiple=True,
accept='.pdf,.docx,.txt,.jpg,.png',
).classes('w-full max-w-xl mx-auto')
ui.separator().classes('my-8')
if __name__ in {"__main__", "__mp_main__"}:
ui.run(
title='File Drop Demo',
favicon='📁',
show=False,
dark=False,
port=8083
)