Sapui5 使用UI5上载SAP HANA XS文件

Sapui5 使用UI5上载SAP HANA XS文件,sapui5,hana,hana-xs,Sapui5,Hana,Hana Xs,我正在尝试在HANA XS服务器上的UI5应用程序中实现文件上载。 我找不到很多关于如何做到这一点的信息——有人有主意了吗?XS没有“随时可用”的服务可以让你做到这一点。当然,您可以在HANA DB中创建一个表,创建一个列类型的BLOB,然后在XS上构建允许您从前端上传文件的服务。我希望这会有所帮助。以下是纯文本文件上传的简单实现: 客户端js: doUpload: function() { var uploadField = document.getElementById("ulUpl

我正在尝试在HANA XS服务器上的UI5应用程序中实现文件上载。
我找不到很多关于如何做到这一点的信息——有人有主意了吗?

XS没有“随时可用”的服务可以让你做到这一点。当然,您可以在HANA DB中创建一个表,创建一个列类型的BLOB,然后在XS上构建允许您从前端上传文件的服务。我希望这会有所帮助。

以下是纯文本文件上传的简单实现:

客户端js:

doUpload: function() {
    var uploadField = document.getElementById("ulUploader1-fu");
    var file = uploadField.files[0];

    var reader = new FileReader();
    reader.onload = function (event) {
    var source = event.target.result; // this is the binary values
    var name = file.name;      

    $.ajax({
        url: "/services/upload.xsjs?cmd=Import",
        type: "PUT",
        processData: false,
        contentType: file.type,
        data: source,
        xhr: function() {
            var req = $.ajaxSettings.xhr();
            if (req) {
                if (req.overrideMimeType) {
                    req.overrideMimeType('text/plain; charset=x-user-defined');
                }
                if (req.sendAsBinary) {
                    req.send = req.sendAsBinary;
                }
            }
            return req;
        },
        error: function(xhr, textStatus, errorThrown){
            alert(xhr.responseText);
        },
        success: function() {
            reader.onload = null;
        }
        });
    };
    reader.readAsText(file);
}
下面是服务器端xsjs服务:

    function doImport() {
    var data = '', conn = $.db.getConnection(), pstmt;  

    if($.request.body){
        data = $.request.body.asString();     
    }

    var conn = $.db.getConnection();
    var pstmt = conn.prepareStatement( 'INSERT INTO "TEST"."UPLOAD" (ID, MIMETYPE, DATA) VALUES(?,?,?)' );

    pstmt.setInteger(1,1);
    pstmt.setString(2,"text/plain");
    pstmt.setString(3,data);

    pstmt.execute();
    pstmt.close();

    conn.commit();
    conn.close();

    doResponse(200,'');

    $.response.contentType = 'text/plain';
    $.response.setBody('Upload ok');
    $.response.status = 200;
}

如果我想发送json对象的数组呢?我如何在HANA上访问它们?当我使用ajax post发送数据时,我看不到hana上的任何数据。例如-
类型:“PUT”,processData:false,contentType:file.type,data:objectArray
,有什么建议吗?