upload_documentation.py 1.1 KB

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