Sapui5 使用UI5上载SAP HANA XS文件
我正在尝试在HANA XS服务器上的UI5应用程序中实现文件上载。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
我找不到很多关于如何做到这一点的信息——有人有主意了吗?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
,有什么建议吗?