deck9 / input

A privacy-focused, no-code, open-source form builder designed for simplicity and brand consistency.
https://getinput.co
GNU Affero General Public License v3.0
162 stars 27 forks source link

New File Upload Input #136

Open PhilReinking opened 4 months ago

PhilReinking commented 4 months ago

This PR will add support for file uploads in forms.

File Input Configuration

The input has for now two configurations when added to a block.

I want to somehow limit this here because I think it might be possibly harmful if users can upload files that are too big. Images, PDFs, texts are files that I would consider reasonable enough to accept. But if users want to upload videos or other large files, that should happen with other services that are optimized for these kinds of file sharing.

File Upload Frontend

The file upload can handle one or multiple files at the same time. This mirrors the native behavior of a single file input. A user can select via the file explorer or drop files into the drop area on the form.

CleanShot 2024-02-20 at 18 11 08

Uploads should only happen at the end when the user clicks the Submit button. In that way, possible consents or other inputs are safely captured. If the user cancels submitting the form, no data has been uploaded, therefore no need for cleaning up anything on the server.

To make handling of the uploads easy, my idea is to create a new file upload endpoint, that expects the form session and the block interaction the upload is made from. Each file could be uploaded individually, that allows for better error handling and maybe better performance when uploading.

Handling on server

franciscomfcmaia commented 3 months ago

Is this available? Super important feature for our use case.

PhilReinking commented 3 months ago

@franciscomfcmaia still a work in progress. If you would like to test it out, I think that a first stable version will be available by end of this week.

Th0rGer commented 2 months ago

how is the Status of the File-Upload feature? :) @PhilReinking

PhilReinking commented 2 months ago

@Th0rGer almost there, need some further testing and adjustments.