An application module can take a file from a web form and process it, which turns App Online into a small intake application: a user uploads a file, the module parses it and writes the result to the connected platform. The file is reached through the `cloud_http` package of Invantive PSQL, which offers the following procedures for the first file uploaded under a given form key: | Procedure | Returns | |---|---| | `get_request_form_file_name` | the file name | | `get_request_form_file_content_type` | the content type | | `get_request_form_file_content_disposition` | the content disposition | | `get_request_form_file_length` | the length | | `get_request_form_file_contents` | the contents, in binary | `get_request_form_file_contents` returns binary. Wrap it in `to_char` where the file is UTF-8 text and the module needs a `varchar2`, after which the contents can be parsed as XML, JSON or CSV with the ordinary functions of [[Invantive UniversalSQL/Invantive UniversalSQL|Invantive UniversalSQL]]. An Excel workbook is read as a binary file. Two things follow from the file arriving as a request rather than from a folder. The size of the upload counts towards the request, so a very large file is better split than uploaded whole. And the module decides what is acceptable: check the content type and the length before parsing, since whoever can reach the form decides what arrives.