以下为正文

玩就玩一个高级的,此篇文章包含了SAP UI5,SAP HANA,SAP XS HANA串联起来

业务需求:SAP UI5传输图片,最后存储到HANA中。

下面体验一下梦幻般的做法,O(∩_∩)O哈哈~

1、首先在HANA中创建一个表,用于存储

       schema名:zmatinal。表名:zimage。表里两个字段分别是:name,content。

​ 
CREATE COLUMN TABLE "ZMATINAL"."ZIMAGE"( 
    "NAME" NVARCHAR(100), 
    "CONTENT" BLOB MEMORY THRESHOLD 1000, 
    PRIMARY KEY ( 
        "NAME" 
    ) 
) UNLOAD PRIORITY 5 AUTO MERGE; 
 
​

2、用SAP UI5上传图片

      其中xml配置

<u:FileUploader 
            id="fileUploader" 
            name="myFileUpload" 
            uploadUrl="upload/" 
            width="400px" 
            tooltip="Upload your file to the local server" 
            uploadComplete="handleUploadComplete"/> 
        <Button 
            text="Upload File" 
            press="handleUploadPress"/>


      其中controller配置

​ 
        handleUploadPress: function(oEvent) { 
            var oFileUploader = this.getView().byId("fileUploader"); 
            oFileUploader.upload(); 
        } 
 
​

3、在XSJS中,只需将该请求读入ArrayBuffer并作为BLOB存储

​ 
    var schema_name = "ZMATINAL"; 
    var filename = $.request.parameters.get('filename');     
     
     
    try { 
        var conn = $.db.getConnection(); 
     
        var pstmt = conn.prepareStatement("INSERT INTO \"ZMATINAL\".\"ZIMAGE\" (NAME, CONTENT) VALUES (?, ?)"); 
     
     
        if($.request.entities.length>0) { 
             
            //  Read in the posted image or binary data as an Array Buffer - you can use this to save as a BLOB 
            var file_body = $.request.entities[0].body.asArrayBuffer(); 
     
            pstmt.setString(1,filename);  //设置文件名 
            pstmt.setBlob(2,file_body);   //图片数据的数组缓冲区 
            pstmt.execute(); 
     
        } 
        else 
        { 
            $.response.setBody("没有请求条目"); 
        } 
        pstmt.close(); 
        conn.commit(); 
        conn.close(); 
        $.response.contentType = "text/html"; 
        $.response.setBody("[200]:上传文件" + filename + "成功!"); 
    } 
    catch(err) 
    { 
        if (pstmt !== null) 
        { 
            pstmt.close(); 
        } 
        if (conn !== null) 
        { 
            conn.close(); 
        } 
        $.response.contentType = "text/html"; 
        $.response.setBody("文件无法保存在数据库中,出现错误:" + err.message); 
    }     
 
​

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

【HANA系列】SAP Vora(SAP HANA和Hadoop)简析