首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSJS将图像插入SAP HANA表

使用XSJS将图像插入SAP HANA表
EN

Stack Overflow用户
提问于 2016-02-08 09:49:28
回答 1查看 1.7K关注 0票数 2

我知道这是一个已知的问题,但我在解决我的问题时遇到了困难。当我通过FileUploader向我的服务器发送图像时,我似乎没有从我的UI5应用程序收到任何东西。我是HCP新手,这是我第一次处理XSJS文件。我希望你能帮助我。

UI5.controller.js

代码语言:javascript
复制
sap.ui.define([  
"sap/ui/core/mvc/Controller"  
], function(Controller) {  
"use strict";  
return Controller.extend("sample.controller.View1", {  
handleUploadPress : function(oEvent)    
{    
    var fileLoader =this.getView().byId("FileLoader");//XML View  

         var fileName = fileLoader.getValue();    
         jQuery.sap.require("sap.ui.commons.MessageBox");    
           if (fileName === "" )    
             {    
                     sap.ui.commons.MessageBox.show("Please choose File.", sap.ui.commons.MessageBox.Icon.INFORMATION, "Information");    
           }    
           else    
           {    
             var uploadUrl = "https://xxxxxx/services/Sample.xsjs?file_name="+fileName;    
             var formEle = jQuery.sap.domById("UpdateContact--FileLoader");   
             var form = $(formEle).find("form")[0] ;    
             var fd = new FormData(form);       
             $.ajax({    
                       url: uploadUrl,    
                       type: "GET",    
                       beforeSend: function(xhr)    
                       {    
                                 xhr.setRequestHeader("X-CSRF-Token", "Fetch");    
                       },    
                       success: function(data, textStatus, XMLHttpRequest) {    
                                 var token = XMLHttpRequest.getResponseHeader('X-CSRF-Token');    
                                 $.ajax({    
                                           url: uploadUrl,    
                                           type: "POST",    
                                           processData :false ,   
                                           contentType: false,  
                                           data: fd,    
                                           beforeSend: function(xhr)    
                                           {    
                                                     xhr.setRequestHeader("X-CSRF-Token", token);    
                                           },    
                                           success: function(data, textStatus, XMLHttpRequest)     
                                           {    
                                                var resptext = XMLHttpRequest.responseText;    
                                                jQuery.sap.require("sap.ui.commons.MessageBox");    
                                                sap.ui.commons.MessageBox.show(resptext, sap.ui.commons.MessageBox.Icon.INFORMATION, "Information");    
                                               if(data === "Upload successful"){  
                                                  sap.ui.commons.MessageBox.show("File uploaded.", sap.ui.commons.MessageBox.Icon.INFORMATION, "Information");    
                                               }  
                                           },    
                                           error: function(data, textStatus, XMLHttpRequest)    
                                           {    
                                                     sap.ui.commons.MessageBox.show("File could not be uploaded.", sap.ui.commons.MessageBox.Icon.ERROR, "Error");    
                                           }    
                                 });    
                       }} ) ;    
              }    
         }  
       });  

XSJS服务:

代码语言:javascript
复制
$.response.contentType = "text/html";    
try    
{    
    var conn = $.hdb.getConnection();    
    var filename = $.request.parameters.get("file_name");   
    var headers = $.entity.headers.length;  
    var pstmt = conn.prepareStatement("INSERT INTO \"XXX_ASSETS\".\"XXX\" VALUES('1',?,'test',CURRENT_USER,CURRENT_TIMESTAMP)");   
    if($.request.entities.length > 0){    
       var file_body = $.request.entities[0].body.asArrayBuffer();    
       pstmt.setBlob(1,file_body);  
       pstmt.execute();  
       $.response.setBody("[200]:Upload successful!");    
    }    
    else    
    {    
       $.response.setBody("No Entries");    
    }    
    pstmt.close();    
    conn.commit();    
    conn.close();    

    }    
    catch(err)    
    {    
       if (pstmt !== null)    
       {    
         pstmt.close();    
       }    
       if (conn !== null)    
       {    
         conn.close();    
       }    
       $.response.setBody(err.message);    
     }   
} 

我的代码是基于我在互联网上找到的教程构建的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-09-07 00:04:54

保存图像的一个好方法是转换(Base64)并保存为HANA表中的blob。

问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35261395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档