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 )