【问题标题】:javascript: How to retreive a file from a JSON object and store it to a SharePoint document libraryjavascript:如何从 JSON 对象中检索文件并将其存储到 SharePoint 文档库
【发布时间】:2020-02-21 00:40:51
【问题描述】:

我正在开发一个 SharePoint 加载项,它从一个 rest api 中检索一个文件(和元数据)并将该文件存储在一个 SharePoint 文档库中(带有文档的名称)。要求是加载项支持将经典站点作为现代站点。这样一来,SPFX 就不是一种选择了。

我能够从 REST 获取 JSON,但我在接下来的步骤中有点卡住了。

JSON 格式很简单:

{ 
size: 2399,
ContentType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
Data: "UEsDBBQAAAAIAIBxVFC38a4kqQAAAA4BAAATAAAAY3VzdG9tWG1sL2l0ZW0xLnhtbK2PwQE...............etc",
filename: "Invoice298393.docx"
}

我可以将文件保存为 Base64。我的解决方案类似于https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/upload-a-file-by-using-the-rest-api-and-jquery。这个例子从输入控件中检索它的数据并从那里流式传输数据,....

我想知道如何获取 json.Data 并将其上传到 SharePoint 文档库。

提前谢谢...

【问题讨论】:

    标签: jquery json sharepoint


    【解决方案1】:

    没关系...修复它:

    function b64EncodeUnicode(str) {
        return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {
            return String.fromCharCode('0x' + p1);
        }));
    }
    function b64DecodeUnicode(str) {
        return decodeURIComponent(Array.prototype.map.call(atob(str), function (c) {
            return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
        }).join(''));
    }
    
        var jsonString = JSON.stringify(json.Data, null, 0);
        var base64EncodedArray = b64EncodeUnicode(jsonString);
        var content = new SP.Base64EncodedByteArray(base64EncodedArray); //base64 encoding
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多