HOW TO: export repository media to files

Here is the code.

var serverName = "repository_server";
var SQL = "SELECT solution_name FROM servoy_solutions ORDER BY solution_name";
var dataset = databaseManager.getDataSetByQuery(serverName, SQL, null, 1000);

var solutionsArr = new Array();
for (var i = 1; i <= dataset.getMaxRowIndex(); i++) {
   dataset.rowIndex = i;
   solutionsArr[i] = dataset.solution_name;
}

var msg = "please select the solution name";
var solutionName = plugins.dialogs.showSelectDialog("", msg, solutionsArr);
if (solutionName == null) {
   return;
}

var destFolderObj = plugins.file.showDirectorySelectDialog("d:/temp/servoyImages/");
if (destFolderObj == null) {
   return;
}

var SQL = "SELECT * FROM servoy_solutions WHERE solution_name = ?";
var args = new Array();
args[0] = solutionName;
var dataset = databaseManager.getDataSetByQuery(serverName, SQL, args, 1);
dataset.rowIndex = 1;
var solutionId = dataset.solution_id;

//=========================================================================//
var SQL = "SELECT * FROM servoy_media WHERE solution_id = ?";
var args = new Array();
args[0] = solutionId;

var dataset = databaseManager.getDataSetByQuery(serverName, SQL, args, 1000);
for( var i = 1 ; i <= dataset.getMaxRowIndex() ; i++) {
   dataset.rowIndex = i;
   var destFilePath = destFolderObj.getAbsolutePath() + "\\" + dataset.name;
   var destFilePath = utils.stringReplace(destFilePath, "\\", "/");
   var destFileObj = plugins.file.convertStringToJSFile(destFilePath);   
   plugins.file.writeFile(destFileObj, dataset.media_data);
}

that can be handy!
great tip! :)

Thank you for sharing this!

Nice tip!