SQLPage built-in functions

In addition to normal SQL functions supported by your database, SQLPage provides a few special functions to help you extract data from user requests.

These functions are special, because they are not executed inside your database, but by SQLPage itself before sending the query to your database. Thus, they require all the parameters to be known at the time the query is sent to your database. Function parameters cannot reference columns from the rest of your query. The only case when you can call a SQLPage function with a parameter that is not a constant is when it appears at the top level of a SELECT statement. For example, SELECT sqlpage.url_encode(url) FROM t is allowed because SQLPage can execute SELECT url FROM t and then apply the url_encode function to each value.

The sqlpage.uploaded_file_name function

Introduced in SQLPage 0.23.0.

Returns the filename value in the content-disposition header.

Example: saving uploaded file metadata for later download

Making a form

select 'form' as component, 'handle_file_upload.sql' as action;
select 'myfile' as name, 'file' as type, 'File' as label;

Handling the form response

Inserting an arbitrary file as a data URL into the database

In handle_file_upload.sql, one can process the form results like this:

insert into uploaded_files (fname, content, uploaded) values (
  sqlpage.uploaded_file_name('myfile'),
  sqlpage.read_file_as_data_url(sqlpage.uploaded_file_path('myfile')),
  CURRENT_TIMESTAMP
);

Note: Data URLs are larger than the original file, so it is not recommended to use them for large files.

Downloading the uploaded files

The file can be downloaded by clicking a link like this:

select 'button' as component;
select name as title, content as link from uploaded_files where name = $file_name limit 1;

Note: because the file is ecoded as a data uri, the file is transferred to the client whether or not the link is clicked

Large files

See the sqlpage.uploaded_file_path function.

See the sqlpage.persist_uploaded_file function.

Parameters

name

Name of the file input field in the form.