This documentation describes the functionality available in Twidget for uploading files through a generated API endpoint and managing interactions via pages. The process allows developers to create dynamic forms that enable users to upload files directly to the backend file storage, specifying various parameters such as storage path and access permissions.
Purpose
The primary goal of the file upload feature is to streamline the integration of file management into applications built on the Twidget platform, allowing for seamless data handling without the need for extensive coding. It simplifies the user experience by providing an intuitive interface for file uploads.
Key Concepts
File Endpoint Generation: Developers can create specific endpoints to handle file uploads, enabling CRUD operations on files stored on the server.
Dynamic Form Handling: The incorporation of forms with file inputs allows users to select and upload files easily. Forms can be linked to specific actions triggered upon submission.
File Permissions: Users can specify upload permissions (public or private) to control access to uploaded content.
Main Components/Workflow
Endpoint Creation: A specific upload endpoint is generated which accepts files and metadata (e.g., storage path, filename, permissions).
Page and Form Setup: Within the Twidget pages tab, a new page is created that houses a form element containing a file input field and a submit button to initiate the upload process.
Function Definition: Developers create a function that constructs and sends an HTTP request to the upload endpoint, configured to handle file data as form data.
Action Linkage: The form is configured to trigger the upload function upon submission, managing the lifecycle of the file upload.
Testing and Validation: Users can test the integration by selecting a file and submitting the form, followed by confirming the upload in the file manager interface.
This process combines frontend form elements and backend API capabilities, enabling effective file management in Twidget-applications.