The Servoy Blobloader provides a convenient way to access files stored in a database column or a global variable and use it as if it were part of the Servoy Media library.

The Servoy Blobloader is a media URL, with arguments indicating where to retrieve the file from:

var tableName = 'filestoragetable';
var columnName = 'thefile';
var id = 1;
var mimeType = 'application/pdf';
var fileName = 'myFileName';
var URL = 'media:///servoy_blobloader?servername=' + currentcontroller.getServerName() 
URL += '&tablename=' + tableName;
URL += '&dataprovider=' + columnName;
URL += '&rowid1=' + id;
URL += '&mimetype=' + mimeType;
URL += '&filename=' + fileName;
return '<html><body><a target="_blank" href="'+URL+'">test</a></body></html>';

In case of a PK buildup out of multiple columns, add &rowid2=value ... &rowidXX=value. The PK values should be ordered by their name ascending.

var globalName = 'myGlobal';
var mimeType = 'application/pdf';
var fileName = 'myFileName';
var URL = 'media:///servoy_blobloader?global=' + globalName;
URL += '&mimetype=' + mimeType;
URL += '&filename=' + fileName;
return '<html><body><a target="_blank" href="'+URL+'">test</a></body></html>';

For more information about mime types, see w3schools.com on mimetypes