点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
有人可以帮助我吗? 我已经在UI5中实现了文件上传/下载,该文件似乎可以正常工作,但是当我下载文件时,文件损坏了,无法打开。 目前,我仅测试图像文件:
new sap.ui.unified.FileUploader({
buttonOnly:是的,
buttonText:"上传文件",
图标:" sap-icon://upload",
更改:function(oEvent){
var oFileUploader = oEvent.getSource();
oItem = oFileUploader.getParent()。getParent()。getParent();
var sPath = oItem.getBindingContext()。getPath();
var files = oEvent.getParameter(" files");
var file = files [0];
如果(文件){
var oNewFile = {
ID:that.count ++,
SurveyAnswerID:oSA.ID,
文件名:oEvent.getParameter(" newValue"),
FileBinary:null,
MimeType:"图片/jpeg",
模式:" POST"
};
var reader = new FileReader();
reader.onload = function(evt){
var binaryString = evt.target.result;
oNewFile.FileBinary = binaryString;
};
reader.readAsBinaryString(file);
}其他{
oNewFile.FileBinary ="";
oNewFile.FileName ="";
MessageToast.show("文件上传出错。\ n请重试"")
}
that._pushItemToFileUploadModel(oNewFile.ID,oNewFile);
that._getFileUploadModel()。refresh();
}
})
下载代码:
selectionChange:function(oEvent){
var item = oEvent.getSource()。getSelectedItem();
var model = that._getFileUploadModel();
如果(项目){
var a = window.document.createElement('a');
a.hraf= window.URL.createObjectURL(new Blob([item.getDocumentId()],{
类型:item.getMimeType()
}));
a.download = item.getFileName();
//将锚点附加到主体。
document.body.appendChild(a);
a.click();
//从主体上移除锚点
document.body.removeChild(a);
}
尝试{
oEvent.getSource()._ oList.removeSelections();
}抓住(e){
//没做什么
}
},
蒂亚戈,
您没有调用getStream下载文件?
我遇到了同样的问题,但仅适用于excel文件。其他文件(pdf,doc)也可以。 某种原因是您调用上载方法时Fileloader不支持xls和xlsx。 到现在为止,应该有一个新的控件了。 我的解决方法是在创建内容并将其传递到有效负载中时编码为base64。
确保在实体上禁用创建流(禁用媒体属性),并让其仅调用create_entity方法并更新oModel.create上的后端表。
通过调用CREATE_STREAM,可以通过媒体属性进行下载。
我的下载功能在另一个应用程序上,并调用了另一个oData服务。 我只是使用了URLHelper。 但是,如果您使用相同的oData服务,则始终可以在相同的oData中创建一个不同的实体,以便在Media属性为打开的情况下进行下载。
一周热门 更多>