如何下载本地上传的文件

How to Download the file which is uploaded locally

我正在查看上传的样本 Collections :

Sample from Docs

这里我尝试上传一个PDF文件,已经上传并显示为:

选择Download启用,下载代码如下:

onDownloadItem: function() {
            var oUploadCollection = this.byId("UploadCollection");
            var aSelectedItems = oUploadCollection.getSelectedItems();
            if (aSelectedItems) {
                for (var i = 0; i < aSelectedItems.length; i++) {
                    oUploadCollection.downloadItem(aSelectedItems[i], true);
                }
            } else {
                MessageToast.show("Select an item to download");
            }
        },

它没有下载任何文件,但是当我尝试下载其他预先存在的文件时,下载成功。

请问为什么本地上传的文件下载不下来?

上传的文件是否需要任何额外的属性?因为现有的很少,例如:

            "documentId" : "64469d2f-b3c4-a517-20d6-f91ebf85b9da",
            "fileName" : "Screenshot.jpg",
            "mimeType" : "image/jpg",
            "thumbnailUrl" : "",
            "url" : "test-resources/sap/m/demokit/sample/UploadCollection/LinkedDocuments/Screenshot.jpg",.....

但是当上传新的代码时,这些都是空的:

"documentId": jQuery.now().toString(), // generate Id,
                    "fileName": sUploadedFile,
                    "mimeType": "",
                    "thumbnailUrl": "",
                    "url": "".......

我不知道如何下载本地上传的文件,非常感谢任何指导链接...TIA

+1 Q --> 请问上传的文件一般是如何保存到数据库的?

我浏览了文档但找不到任何解决方案,但阅读并找到了一个类似的下载但运气不好:

   sap.ui.core.util.File.save();

当按下link时,用FileReader获取base64

var file = event.getSource().getParent().getFileObject();
var reader = new FileReader();
// call for file content
reader.readAsDataURL(file);
reader.onload = function (e) {
    var base64 = e.target.result;
}

然后从 base64 创建一个 Blob 并将其作为 iFrame 打开:

var blobUrl = URL.createObjectURL(blob);
var myWindow = window.open("");
myWindow.document.write("<iframe width='100%' height='100%' src='" + blobUrl + "'></iframe>");
myWindow.document.close();

但是,如果您不想只在新的文件中打开它,window您可以在有文件内容后立即下载它。