Quantcast
Channel: SCN: Message List - SAP HANA Developer Center
Viewing all articles
Browse latest Browse all 9165

Image repository in HANA

$
0
0

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.

 

Capture.JPG

 

 

Currently my UI looks something like below(this will eventually change in future)

Question.JPG

 

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.


Viewing all articles
Browse latest Browse all 9165

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>