sapui5在sapui5中上载文件,并在odata服务entityset中发送该文件
我的要求是 步骤1:选择用户并选择要上载到sapUI5的文件 第2步单击“保存”按钮,应上传文件, 步骤3:将上载的文件保存在odata entityset中,并将其发送到后端。此odata服务有两个实体集,两个实体集应在一次调用中返回后端。 台阶 我正在使用UploadCollection控件sapui5在sapui5中上载文件,并在odata服务entityset中发送该文件,sapui5,Sapui5,我的要求是 步骤1:选择用户并选择要上载到sapUI5的文件 第2步单击“保存”按钮,应上传文件, 步骤3:将上载的文件保存在odata entityset中,并将其发送到后端。此odata服务有两个实体集,两个实体集应在一次调用中返回后端。 台阶 我正在使用UploadCollection控件 <UploadCollection uploadComplete="onUploadComplete" typeMissmatch="onTypeMiss
<UploadCollection
uploadComplete="onUploadComplete"
typeMissmatch="onTypeMissmatch"
fileSizeExceed="onFileSizeExceed"
filenameLengthExceed="onFilenameLengthExceed"
fileDeleted="onFileDeleted"
change="onChangeAttachments"
noDataDescription="Drag & Drop files or use the "+" button for pending upload"
instantUpload="false"
sameFilenameAllowed="false"
multiple="true"
maximumFileSize="10"
maximumFilenameLength="55"
id="UploadSet"/>
我的问题是关于方法onUploadComplete如何获取文件内容并将其保存在odata entityset中
谢谢
Sonal.我找到了解决这个问题的办法 单击“保存”按钮,我使用文件读取器将所选文件作为二进制文件读取,然后将二进制文件保存在我的模型文件内容中,然后将其发送到后端
var base64_marker = "data:" + file.type + ";base64,";
var reader = new FileReader();
reader.onload = (function (thefile) {
return function (evt) {
var base64Index = evt.target.result.indexOf(base64_marker) + base64_marker.length; // locate base64 content
var base64 = evt.target.result.substring(base64Index); // get base64 content
var oAttData = that.getModel("newInitiative").getData().rawAttachment[0];
var oFileData = {};
oFileData.ClaimType = "OFFICE";
oFileData.FileContent = base64;
oFileData.Filename = oAttData.name;
oFileData.Filesize = oAttData.size;
oFileData.Mimetype = oAttData.type;
that.getModel("SupplierModel").getProperty("/VendorFileSet").push(oFileData);
};
}.bind(that))(file);
谢谢
var base64_marker = "data:" + file.type + ";base64,";
var reader = new FileReader();
reader.onload = (function (thefile) {
return function (evt) {
var base64Index = evt.target.result.indexOf(base64_marker) + base64_marker.length; // locate base64 content
var base64 = evt.target.result.substring(base64Index); // get base64 content
var oAttData = that.getModel("newInitiative").getData().rawAttachment[0];
var oFileData = {};
oFileData.ClaimType = "OFFICE";
oFileData.FileContent = base64;
oFileData.Filename = oAttData.name;
oFileData.Filesize = oAttData.size;
oFileData.Mimetype = oAttData.type;
that.getModel("SupplierModel").getProperty("/VendorFileSet").push(oFileData);
};
}.bind(that))(file);