1
0

upload_documentation.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from nicegui import ui
  2. from ...model import UiElementDocumentation
  3. class UploadDocumentation(UiElementDocumentation, element=ui.upload):
  4. def main_demo(self) -> None:
  5. ui.upload(on_upload=lambda e: ui.notify(f'Uploaded {e.name}')).classes('max-w-full')
  6. def more(self) -> None:
  7. @self.demo('Upload restrictions', '''
  8. In this demo, the upload is restricted to a maximum file size of 1 MB.
  9. When a file is rejected, a notification is shown.
  10. ''')
  11. def upload_restrictions() -> None:
  12. ui.upload(on_upload=lambda e: ui.notify(f'Uploaded {e.name}'),
  13. on_rejected=lambda: ui.notify('Rejected!'),
  14. max_file_size=1_000_000).classes('max-w-full')
  15. @self.demo('Show file content', '''
  16. In this demo, the uploaded markdown file is shown in a dialog.
  17. ''')
  18. def show_file_content() -> None:
  19. from nicegui import events
  20. with ui.dialog().props('full-width') as dialog:
  21. with ui.card():
  22. content = ui.markdown()
  23. def handle_upload(e: events.UploadEventArguments):
  24. text = e.content.read().decode('utf-8')
  25. content.set_content(text)
  26. dialog.open()
  27. ui.upload(on_upload=handle_upload).props('accept=.md').classes('max-w-full')