Hello All,
I am trying to build an image repository. The idea is to have a table in HANA DB as shown below and to push the raw data of the image into a BLOB column.
Currently my UI looks something like below(this will eventually change in future)
Am using FileUploader control (sap.ui.commons.FileUploader) and the upload code is as below
doFileUpload : function(oEvent)
{
var url = "Services/ImageUpload.xsjs";
var quesID = sap.ui.getCore().byId("tfQuestionID").getValue();
var version = sap.ui.getCore().byId("tfVersion").getValue();
var fileLoader = sap.ui.getCore().byId("FileLoader");
var fileName = fileLoader.getValue();
if (fileName == "" )
{
jQuery.sap.require("sap.ui.commons.MessageBox");
sap.ui.commons.MessageBox.show("Please choose File.", sap.ui.commons.MessageBox.Icon.INFORMATION, "Information");
}
else
{
url = url+"?file_name="+fileName+"&question_id="+quesID+"&version="+version;
fileLoader.setUploadUrl(url);
fileLoader.upload();
}
}
Following is my XSJS server side code to push the image to HANA DB
$.response.contentType = "text/html";
try
{
var conn = $.db.getConnection();
var filename = $.request.parameters.get("file_name");
var questionID = $.request.parameters.get("question_id");
var version = $.request.parameters.get("version");
var imageID = uniqueID();
var type=filename.substr( (filename.lastIndexOf('.') +1) );;
var content = $.request.entities.length>0? $.request.entities[0].body:"";
var size = $.request.entities.length;
var pstmt = conn.prepareStatement( "insert into \"QIMAGES\" values(?,?,?,?,?,?,?)" );
pstmt.setString(1,questionID);
pstmt.setInteger(2,parseInt(version));
pstmt.setString(3,imageID);
pstmt.setBlob(4,content);
pstmt.setString(5,filename);
pstmt.setString(6,type);
pstmt.setInteger(7,parseInt(size));
var rs = pstmt.execute();
pstmt.close();
conn.commit();
conn.close();
$.response.setBody("[200]"+imageID);
}
catch(err)
{
if (pstmt !== null)
{
pstmt.close();
}
if (conn !== null)
{
conn.close();
}
$.response.setBody(err.message);
}
Above server side code to push the image to HANA DB doesn't work! Appreciate your inputs to get this thing work. Thanks for your time.